如何编写的getter/setter类型定义(打字稿)
我怎么会写一个JavaScript代码看起来像这样如何编写的getter/setter类型定义(打字稿)
library.js类型定义文件(d.ts):
Object.defineProperty(SceneNode.prototype, 'name', {
set: function(name)
{
this.setName(name);
},
get: function(){
return this._name;
},
enumerable: true
});
我到目前为止有:
library.d.ts
class SceneNode{
private _name: string;
}
但是,我将如何将getter/setter包含到类型定义中?
编辑1:
澄清
添加文件名你只定义类型,就好像是一个简单的属性。 getter和setter的要点是,当它实际上有些代码正在运行时,它看起来好像只是一个简单的属性,但它不会改变类型视图中的接口。
因此,所有你需要的是:
class SceneNode{
private _name: string;
public name: string;
}
只需一个后续问题:我需要私人定义还是公众定义,或者公众是否足够?该对象本身具有'''_name'''和''''''' –
我会同时包含这两个,因为它更准确地描述了对象。如果你正在定义一个接口,那么你将不会有私人成员,但对于你应该拥有的课程。但这只是意见:省略私人成员可能不会破坏任何东西。 – Duncan
非常感谢你 –
是旨在使用的setter/getter或可以使两个函数'的getName()'和'的setName()'? – Mouneer
我试图编写d.ts文件的库是用getters/setter这种格式编写的: Object.defineProperty(SceneNode.prototype,'name',{ –
@Mouneer为什么当JS允许真正的属性访问器? – evolutionxbox