Skip to content

Commit 017f30e

Browse files
author
Andy
authored
isValidPropertyAccessWithType: Simplify loop (microsoft#21725)
1 parent 4cfb7a5 commit 017f30e

1 file changed

Lines changed: 6 additions & 17 deletions

File tree

src/compiler/checker.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16188,24 +16188,13 @@ namespace ts {
1618816188
propertyName: __String,
1618916189
type: Type): boolean {
1619016190

16191-
if (type !== unknownType && !isTypeAny(type)) {
16192-
const prop = getPropertyOfType(type, propertyName);
16193-
if (prop) {
16194-
return checkPropertyAccessibility(node, left, type, prop);
16195-
}
16196-
16197-
// In js files properties of unions are allowed in completion
16198-
if (isInJavaScriptFile(left) && (type.flags & TypeFlags.Union)) {
16199-
for (const elementType of (<UnionType>type).types) {
16200-
if (isValidPropertyAccessWithType(node, left, propertyName, elementType)) {
16201-
return true;
16202-
}
16203-
}
16204-
}
16205-
16206-
return false;
16191+
if (type === unknownType || isTypeAny(type)) {
16192+
return true;
1620716193
}
16208-
return true;
16194+
const prop = getPropertyOfType(type, propertyName);
16195+
return prop ? checkPropertyAccessibility(node, left, type, prop)
16196+
// In js files properties of unions are allowed in completion
16197+
: isInJavaScriptFile(node) && (type.flags & TypeFlags.Union) && (<UnionType>type).types.some(elementType => isValidPropertyAccessWithType(node, left, propertyName, elementType));
1620916198
}
1621016199

1621116200
/**

0 commit comments

Comments
 (0)