如何在Typescript中模拟Javascript&#39的Object.defineProperties?我想使用Typescript语法做这样的事情:
Object.defineProperties(someObject.prototype,
{
property: {get: function() { return value; } },
anotherProperty {get: function() { return somethingElse; } }
});
任何指针?谢谢!
答案 0 :(得分:1)
看起来你需要的只是吸气剂(设定者的工作方式类似)。
可以在TS Playground page上查看。
以下是一个简单的例子:
class MyClass {
private _myProp: string = "myPropValue";
get myProp(): string {
alert("get myProp: " + this._myProp);
return this._myProp;
}
set myProp(value: string) {
alert("set myProp: " + value);
this._myProp = value;
}
}
const myObj = new MyClass();
const myPropValue = myObj.myProp;
myObj.myProp = "newValue";
const myPropNewValue = myObj.myProp;
更多信息可在TS Handbook。
中找到答案 1 :(得分:0)
您的代码逻辑不需要更改,DefineProperties函数可以保留,您只需要让打字稿知道对象的外观
首先,为结果对象创建一个接口。这些getter看起来像接口中的普通readonly属性。
然后将templary变量定义为type并附加所有属性/ getter
最后创建一个新的类型变量,该变量使用所有getter引用已安装的对象 const myObjectWithGetters = tempGetterObj