如何访问在其中调用装饰器的类的变量?
@TestDecorator()
export class AppController {
private testData: number = 15;
}
export const TestDecorator = (options: ICrudConfig) => (target: Object) => {
console.log(target.prototype.testData);
};
target.prototype.testData未定义
先感谢您
Typescript的类修饰器doc对此进行了解释。您的类装饰器允许您扩展和修改构造函数,而您不能直接访问和修改类的原型。
尝试使用控制台记录目标,以查看可以访问的内容;)
我的建议:尝试返回一个扩展目标的类。
请记住,在类实例化之前对类装饰器进行了评估,因此您将能够覆盖方法和常量,但是您将无法访问稍后在执行中实例化的变量。
export const TestDecorator = (options: ICrudConfig) => (target: Object) => {
return class extends target { // returns a new class extending the decorated one;
constructor {
super();
console.log(this.testData);
}
};
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句