// @strict function f1(a: () => keyof T, b: () => keyof U) { a = b; b = a; } function f2(a: () => T[K], b: () => U[L]) { a = b; b = a; } function f3(a: () => { [K in keyof T]: T[K] }, b: () => { [K in keyof U]: U[K] }) { a = b; b = a; } // Repro from #18338 type IdMapped = { [K in keyof T]: T[K] } declare const f: () => IdMapped; declare const g: () => { [K in keyof U]: U[K] }; const h: typeof g = f;