使用类作为可以传递给函数的接口

时间:2019-01-31 15:10:42

标签: typescript

我希望能够创建一个“工厂”,以允许我通过课程。

class Dolphin {};
class Seal {};

const returnsFunctionThatReturn = (c) => {
  return (): c => {};
}


returnsFunctionThatReturn(Dolphin)(); // should be a dolphin
returnsFunctionThatReturn(Seal)(); // should be a seal

在TS中这样的事情可能吗?

2 个答案:

答案 0 :(得分:1)

这应该做到。

const returnsFunctionThatReturn = <T> (c: new () => T) => {
  return (): T => new c();
}

答案 1 :(得分:0)

为什么不可以呢?但是,您只能访问这些类的公共静态变量和函数。否则,必须先构造它们,然后再将它们输入到函数中。