如何在Typescript中使用Proxy为新属性添加getter



我有一个对象,我想向它添加一个新属性:

this.exampleConfig = new Proxy(config, {
set: (obj, prop, value) => {
...
}
}

我正在一个角度应用程序中使用它,目前有一个exampleConfig.myProperty。我想添加一个exampleConfig.myExtendedProperty

我试过

this.fileConfig = new Proxy(config, {
set: (obj, prop, value) => {
...
},
get: function (obj, prop, receiver) {
if (prop === "myExtendedProperty") {
return obj.myProperty.toUpperCase()+'_EXTENSION';
}
return Reflect.get(...arguments);
},
});

然而,编译器抛出:

Error ...  : Expected 2-3 arguments, but got 0 or more.  
return Reflect.get(...arguments);
node_modules/typescript/lib/lib.es2015.reflect.d.ts:26:18
26     function get(target: object, propertyKey: PropertyKey, receiver?: any): any;
~~~~~~~~~~~~~~
An argument for 'target' was not provided.

我该怎么办?

根据Get Off My Lawn的建议,这可以用解决

return Reflect.get(obj, prop, receiver)

所以在这种情况下

get: function (obj, prop, receiver) {
if (prop === "myExtendedProperty") {
return obj.myProperty.toUpperCase()+'_EXTENSION';
}
return Reflect.get(obj, prop, receiver)
},

最新更新