如何在PropertyDecorator中更改属性值?

时间:2018-08-31 17:37:58

标签: javascript typescript ecmascript-6 typescript-decorator

如何使用foo装饰器更改TestClassDefaultValue的值?

class TestClass {
  @DefaultValue('bar')
  private foo;
}

export const DefaultValue = (val: any): PropertyDecorator => {
  return (target: any, propertyKey: string | symbol) => {
    // Change the value of the decorated property
    this[propertyKey] = val; // DOESN'T WORK!
  };
}

不起作用:this[propertyKey] = val;

1 个答案:

答案 0 :(得分:0)

你不能。

  

这是因为当前在定义原型成员时没有机制来描述实例属性,也没有办法观察或修改该属性的初始化程序。

~TS docs

相关问题