使用Typescript 2.3.4。
我正在尝试对方法参数设置泛型约束,如:public static FromFactType<T extends FactCore>() :T
。 FactCore
是一个基类,有三个直接后代:FactEvent, FactDuration, FactPlain
。每个直接后代都有15-20个独立的孩子,增加了新的属性。例如,FactEvent
有一个孩子FactBirth
,因此FactBirth
会间接从FactCore
继承。
但是,当我尝试将FactBirth
的实例传递给我的方法时,我收到一个错误:类型BirthFact无法转换为类型'T'。我能够安抚Typescript编译器的唯一方法是在约束中明确列出BirthFact
。我已经尝试将中级类(FactEvent,FactDuration和FactPlain)添加到constaint中,没有运气 - 同样的错误。
我是否真的需要在约束中明确列出所有60多个底层类?
感谢。