【发布时间】:2019-12-12 00:15:07
【问题描述】:
我有抽象类 Child 和抽象类 Parent 如下:
abstract class Child {
}
abstract class Parent {
abstract getChild(): typeof Child; // <-- want a class that extends Child
}
这个想法是 Parent 和 Child 都由实际的实现类扩展,其中每个实现 Parent 都知道它的 Child 类是什么:
class ActualChild extends Child {
}
class ActualParent extends Parent {
getChild() {
return ActualChild;
}
}
就TS而言,返回的对象是Child类型,因此无法实例化。
我尝试了许多不同的方法来解释该函数仅返回一个扩展 Child 的类而没有成功。
有什么办法可以输入吗?
【问题讨论】:
-
getChild(): typeof ActualChild { return ActualChild; }? -
而这些
Child的具体子类...它们都是零参数构造函数还是需要某种构造函数参数?