【问题标题】:TypeScript: Any class that implements a particular interfaceTypeScript:任何实现特定接口的类
【发布时间】:2018-09-28 10:25:47
【问题描述】:

假设我有这个界面

interface CanFly {
  fly(): void;
}

我将创建两个类,BirdAirPlane,它们都实现了上述接口。

最后,我想创建一个函数flyIn2Seconds,如下所示:

function flyIn2Seconds(who: any extends CanFly) {
  setTimeout(() => who.fly(), 2000);
}

但是any extends CanFly 不起作用 ([ts] '?' expected.)。有没有办法指定类型“任何实现 CanFly 的类”?

【问题讨论】:

    标签: typescript


    【解决方案1】:

    您只需指定接口:

    function flyIn2Seconds(who: CanFly) {
      setTimeout(() => who.fly(), 2000);
    }
    

    the interfaces documentation 中的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 2021-07-20
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2021-02-21
      • 2019-05-09
      相关资源
      最近更新 更多