From ec02ccd575afb57c69d8db708889c5d27209d8e1 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Mon, 2 Apr 2018 09:23:00 -0700 Subject: [PATCH] Add regression test --- .../types/conditional/conditionalTypes2.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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; };