@@ -328,3 +328,27 @@ function acceptMappedArray<T extends any[]>(arr: T) {
328328>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 81, 44))
329329}
330330
331+ // Repro from #26163
332+
333+ type Unconstrained<T> = ElementType<Mapped<T>>;
334+ >Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 83, 1))
335+ >T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 87, 19))
336+ >ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 66, 1))
337+ >Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
338+ >T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 87, 19))
339+
340+ type T1 = Unconstrained<[string, number, boolean]>; // string | number | boolean
341+ >T1 : Symbol(T1, Decl(mappedTypesArraysTuples.ts, 87, 47))
342+ >Unconstrained : Symbol(Unconstrained, Decl(mappedTypesArraysTuples.ts, 83, 1))
343+
344+ type Constrained<T extends any[]> = ElementType<Mapped<T>>;
345+ >Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 88, 51))
346+ >T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 90, 17))
347+ >ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 66, 1))
348+ >Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
349+ >T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 90, 17))
350+
351+ type T2 = Constrained<[string, number, boolean]>; // string | number | boolean
352+ >T2 : Symbol(T2, Decl(mappedTypesArraysTuples.ts, 90, 59))
353+ >Constrained : Symbol(Constrained, Decl(mappedTypesArraysTuples.ts, 88, 51))
354+
0 commit comments