首页 > 解决方案 > TypeScript:任何实现特定接口的类

问题描述

假设我有这个界面

interface CanFly {
  fly(): void;
}

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

最后,我想创建一个函数flyIn2Seconds,它看起来像这样:

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

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

标签: typescript

解决方案


您只需指定接口:

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

更多在接口文档中。


推荐阅读