* Add isIntersectionConstituent to relation key isIntersectionConstituent controls whether relation checking performs excess property and common property checks. It is possible to fail a relation check with excess property checks turned on, cache the result, and then skip a relation check with excess property checks that would have succeeded. #33133 provides an example of such a program. Fixes #33133 the right way, so I reverted the fix at #33213 Fixes #34762 (by reverting #33213) Fixes #33944 -- I added the test from #34646 * Update comments in test
4 lines
158 B
TypeScript
4 lines
158 B
TypeScript
export type U = { kind?: 'A', a: string } | { kind?: 'B' } & { b: string };
|
|
type Ex<T, U> = T extends U ? T : never;
|
|
declare let x: Ex<U, { kind?: 'A' }>
|
|
x.a
|