acdf62fa1e
* Fix "Union types are not being narrowed down correctly in 4.3 #44401" * On undefined constraint, add the original type to constraints.
27 lines
540 B
TypeScript
27 lines
540 B
TypeScript
//// [intersectionOfUnionNarrowing.ts]
|
|
interface X {
|
|
a?: { aProp: string };
|
|
b?: { bProp: string };
|
|
}
|
|
type AorB = { a: object; b: undefined } | { a: undefined; b: object };
|
|
|
|
declare const q: X & AorB;
|
|
|
|
if (q.a !== undefined) {
|
|
q.a.aProp;
|
|
} else {
|
|
// q.b is previously incorrectly inferred as potentially undefined
|
|
q.b.bProp;
|
|
}
|
|
|
|
|
|
//// [intersectionOfUnionNarrowing.js]
|
|
"use strict";
|
|
if (q.a !== undefined) {
|
|
q.a.aProp;
|
|
}
|
|
else {
|
|
// q.b is previously incorrectly inferred as potentially undefined
|
|
q.b.bProp;
|
|
}
|