在此示例中,如何使Typescript编译器推断正确的类型?
interface A<T> {
do(param: T): void
}
class A2 implements A<string>{
do(param){}
}
function createA<T>(constr: new () => A<T>, param: T){}
createA(A2, "")
在这里它不会编译,并且T被推断为任何类型
您还需要使类具有通用性,以便可以告诉Typescript接口参数和function参数是同一类型,而无需重复自己的操作:
class A2<T extends string> implements A<T>{
go(param: T) {
param.split('') // string method is allowed here
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句