如何避免TypeScript mixins出现“未解决的函数”错误?

时间:2016-03-10 16:49:15

标签: typescript webstorm durandal

当我在TypeScript类上使用Durandal的Events.includeIn() mixin方法时,WebStorm报告了一个未解析的函数:

class Foo {
  bar() {
    ...
    this.trigger('myEvent', payload);  // trigger is unresolved function
    ...
  }
}

Events.includeIn(Foo);

有没有办法解决这个问题而不使用WebStorm来抑制每个未解析的调用?

1 个答案:

答案 0 :(得分:1)

为了在trigger类上调用Foo方法,您需要向TypeScript编译器通知trigger方法。您可以通过在类定义中includeIn调用后声明存在的方法来执行此操作:

class Foo {

  // I'm not sure of the exact parameter/return types
  trigger: (eventName: string, payload: any) => void;

  bar() {
    ...
    this.trigger('myEvent', payload);  // now this function exists
    ...
  }
}

Events.includeIn(Foo);