class A { t: "A" }
class EA extends A { et: "EA" }
class B { t: "B" }
class C { t: "C" }
function f<T extends A | B>(x: T extends A ? A : B): T extends A ? A : B {
if (x instanceof A) {
return x;
}
return x;
}
f<A>(new A())//return A
f<EA>(new EA())//return A
f<B>(new B())//return B
f<C>(new C())//TYPE ERROR
泛型类型 T 扩展接口而不是类。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句