T扩展抽象类构造函数

时间:2018-11-29 14:12:48

标签: typescript

我可以使此代码正常工作吗(接口不是解决方案-这是一个简化的示例)?我不会创建抽象类。

  

TS2511:无法创建抽象类的实例。

BorderThickness

1 个答案:

答案 0 :(得分:0)

根据定义,抽象类没有可调用的构造函数,因此typeof AbstractClass也将没有可调用的构造函数。您可以改用构造函数

abstract class AbstractBase {
  private readonly ["AbstractBase"];
}


class A extends AbstractBase {}
class B extends AbstractBase {}
class C extends AbstractBase {}


function create<T extends new () => AbstractBase>(c: T) {return new c();}