1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
//// [tests/cases/conformance/jsdoc/typeParameterExtendsUnionConstraintDistributed.ts] ////
=== typeParameterExtendsUnionConstraintDistributed.ts ===
type A = 1 | 2;
>A : 1 | 2
function f<T extends A>(a: T): A & T { return a; } // Shouldn't error
>f : <T extends A>(a: T) => A & T
>a : T
>a : T
type B = 2 | 3;
>B : 2 | 3
function f2<T extends A, U extends B>(ab: T & U): (A | B) & T & U { return ab; } // Also shouldn't error
>f2 : <T extends A, U extends B>(ab: T & U) => (A | B) & T & U
>ab : T & U
>ab : T & U
|