【问题标题】:How to avoid "unresolved function" error with TypeScript mixins?如何避免 TypeScript mixins 出现“未解析的函数”错误?
【发布时间】:2016-03-10 16:49:14
【问题描述】:

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

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

Events.includeIn(Foo);

有没有办法在不使用 WebStorm 抑制每个未解决的呼叫的情况下解决这个问题?

【问题讨论】:

  • 快速解决方法:this['trigger']('myEvent', payload); :)

标签: typescript webstorm durandal


【解决方案1】:

为了在Foo 类上调用trigger 方法,您需要通知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);

【讨论】:

    猜你喜欢
    • 2017-10-18
    • 2017-10-21
    • 2018-10-20
    • 2011-06-12
    • 1970-01-01
    • 2021-07-03
    • 2020-01-01
    • 1970-01-01
    • 2018-12-31
    相关资源
    最近更新 更多