【发布时间】:2020-03-09 20:05:48
【问题描述】:
我试图在下面的示例中正确推断 T3 的类型,但它只是显示为 unknown。我无法理解它如何在调用Testing.testIt 时正确推断基本类型T2,而不是它扩展的类的类型参数(T3)。这是running example。我试图弄清楚 infer 关键字在这里是否有用,但我看不出它如何适合这个。
export interface Type<T> extends Function {
new (...args: any[]): T;
}
class GenericClass<T> {
}
class ChildClass extends GenericClass<string> {
}
class Testing {
static testIt<T3, T2 extends GenericClass<T3>>(testClass: Type<T2>): T3 {
console.log('testIt called');
return '' as any;
}
static testIt2(val: string): void {
console.log(val);
}
}
const result = Testing.testIt(ChildClass);
Testing.testIt2(result);
【问题讨论】:
标签: typescript typescript-generics typescript3.0