mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-05 07:45:18 -06:00
Fix bug: result of createUnionOrIntersectionProperty may be undefined (#21332)
This commit is contained in:
parent
a3ecfd857c
commit
588716926d
@ -5995,7 +5995,9 @@ namespace ts {
|
||||
for (const memberType of types) {
|
||||
for (const { escapedName } of getAugmentedPropertiesOfType(memberType)) {
|
||||
if (!props.has(escapedName)) {
|
||||
props.set(escapedName, createUnionOrIntersectionProperty(unionType as UnionType, escapedName));
|
||||
const prop = createUnionOrIntersectionProperty(unionType as UnionType, escapedName);
|
||||
// May be undefined if the property is private
|
||||
if (prop) props.set(escapedName, prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6177,7 +6179,7 @@ namespace ts {
|
||||
t;
|
||||
}
|
||||
|
||||
function createUnionOrIntersectionProperty(containingType: UnionOrIntersectionType, name: __String): Symbol {
|
||||
function createUnionOrIntersectionProperty(containingType: UnionOrIntersectionType, name: __String): Symbol | undefined {
|
||||
let props: Symbol[];
|
||||
const isUnion = containingType.flags & TypeFlags.Union;
|
||||
const excludeModifiers = isUnion ? ModifierFlags.NonPublicAccessibilityModifier : 0;
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
|
||||
////interface I { x: number; }
|
||||
////interface Many<T> extends ReadonlyArray<T> { extra: number; }
|
||||
////const x: I | I[] | Many<string> = { /**/ };
|
||||
////class C { private priv: number; }
|
||||
////const x: I | I[] | Many<string> | C = { /**/ };
|
||||
|
||||
// We specifically filter out any array-like types.
|
||||
// Private members will be excluded by `createUnionOrIntersectionProperty`.
|
||||
verify.completionsAt("", ["x"]);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user