diff --git a/tests/cases/conformance/types/conditional/conditionalTypes2.ts b/tests/cases/conformance/types/conditional/conditionalTypes2.ts index c3418cf924d..4002ab6a0a7 100644 --- a/tests/cases/conformance/types/conditional/conditionalTypes2.ts +++ b/tests/cases/conformance/types/conditional/conditionalTypes2.ts @@ -121,3 +121,18 @@ function foo(value: T) { toString2(value); } } + +// Repro from #23052 + +type A = + T extends object + ? { [Q in { [P in keyof T]: T[P] extends V ? P : P; }[keyof T]]: A; } + : T extends V ? T : never; + +type B = + T extends object + ? { [Q in { [P in keyof T]: T[P] extends V ? P : P; }[keyof T]]: B; } + : T extends V ? T : never; + +type C = + { [Q in { [P in keyof T]: T[P] extends V ? P : P; }[keyof T]]: C; };