TypeScript:任何实现特定接口的类

时间:2018-09-28 10:25:47

标签: typescript

假设我有这个界面

interface CanFly {
  fly(): void;
}

然后我将创建两个类,分别实现上述接口的BirdAirPlane

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

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

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

1 个答案:

答案 0 :(得分:2)

您只需指定接口:

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

the interfaces documentation中的更多内容。