阅读打字稿中的类装饰器信息

时间:2018-11-19 00:28:42

标签: typescript aurelia

我有一个用属性修饰的类。

我想读取构造函数(或其他方法)中的属性。

我已经尝试过在该类上使用Reflect和所有可能的方法,但是我只能得到未定义的

该类看起来像这样

@inject(Element)
@bindable('color')
export class Messagebarhost {

public element: HTMLElement;

  constructor(element) {
  console.log(Reflect.getMetadata("design:paramtypes", this));
  // prints undefined
  // somehow I want to read the value 'color'
  }
}

如果我在创建装饰器的捆绑js文件中设置了一个断点。如果我在调试器中输入以下行,则将打印正确的值

r.__metadata__.undefined["aurelia:resource"].properties[0]

1 个答案:

答案 0 :(得分:0)

我认为您不应将装饰器放在类上,而应放在如下所示的字段上:

@inject(Element)
export class Messagebarhost {

  public element: HTMLElement;
  @bindable color;


  constructor(element) {
     // this.color is not bound here yet.
  }

  attached () {
    // You need to wait till the attached or the bind function is
    // called to get the correct value in this.color.
  }
}