Typescript decorate类添加新方法

时间:2016-11-06 12:28:58

标签: javascript typescript typescript2.0

我想为一个装饰类添加一个新方法。一切都运行良好,但编译器抱怨该方法不存在,我怎么能满足编译器?

export function decorate( constructor : Function ) {

  constructor.prototype.someMethod = function () {

  }

} 

@decorate
class Test {
  constructor() {
    //Property 'someMethod' does not exist on type 'Test'.
    this.someMethod();
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用:

(<any>this).someMethod();

或:

this['someMethod']();

您无法使用界面检查this是否包含方法someMethod(),因为您实际上并未实现该界面,所以我认为这两个选项是唯一的选项......