// @strict: true type Same = { [P in keyof T]: T[P] }; type T1> = T; type T2> = T1>; // Repro from #38235 type Foo> = IdentifierT ; type Bar, T> = { [k in keyof T] : Foo } ; type Merge2 = { [k in keyof T] : T[k] } type Bar2, T> = { [k in keyof T]: Foo> } ; type Identity = T; type Merge3 = Identity<{ [k in keyof T] : T[k] }> type Bar3, T> = { [k in keyof T]: Foo> } ;