declare function f(x: { prop: T }): T; declare const a: { prop: string } & { prop: number }; declare const b: { prop: string & number }; f(a); // never f(b); // never // Repro from #18354 declare function f2(obj: {[K in keyof T]: T[K]}, key: Key): T[Key]; declare const obj: { a: string } & { b: string }; f2(obj, 'a'); f2(obj, 'b');