diff --git a/tests/cases/compiler/tupleTypeInference2.ts b/tests/cases/compiler/tupleTypeInference2.ts new file mode 100644 index 00000000000..080d8fc8532 --- /dev/null +++ b/tests/cases/compiler/tupleTypeInference2.ts @@ -0,0 +1,25 @@ +// @strict: true + +// Repro from #22564 + +type A = [R] | [R, string]; +declare function f(x: A): T; +f([undefined, ''] as [never, string]); // T: never +f([undefined, ''] as [void, string]); // T: void + +// Repro from #22563 + +type B = [R] | [R, S]; +declare function g(f: B): U; +g([[]] as [void[]]); // U: {} + +type C = [R[]] | [R[], S]; +declare function h(f: C): U; +h([[]] as [void[]]); // U: {} + +// Repro from #22562 + +type C2 = [R[]] | [R[], void]; +declare function h2(f: C2): T; +h2([[]] as [never[]]); // T: never +h2([[]] as [void[]]); // T: void