@@ -14633,7 +14633,7 @@ namespace ts {
14633
14633
case SyntaxKind.PropertyAccessExpression:
14634
14634
case SyntaxKind.ElementAccessExpression:
14635
14635
const propName = getAccessedPropertyName(<AccessExpression>node);
14636
- if (propName) {
14636
+ if (propName !== undefined ) {
14637
14637
const key = getFlowCacheKey((<AccessExpression>node).expression);
14638
14638
return key && key + "." + propName;
14639
14639
}
@@ -14694,7 +14694,7 @@ namespace ts {
14694
14694
const type = getDeclaredTypeOfReference(expr.expression);
14695
14695
if (type) {
14696
14696
const propName = getAccessedPropertyName(expr);
14697
- return propName && getTypeOfPropertyOfType(type, propName);
14697
+ return propName !== undefined ? getTypeOfPropertyOfType(type, propName) : undefined ;
14698
14698
}
14699
14699
}
14700
14700
return undefined;
@@ -15645,15 +15645,15 @@ namespace ts {
15645
15645
return false;
15646
15646
}
15647
15647
const name = getAccessedPropertyName(expr);
15648
- if (! name) {
15648
+ if (name === undefined ) {
15649
15649
return false;
15650
15650
}
15651
15651
return isMatchingReference(reference, expr.expression) && isDiscriminantProperty(computedType, name);
15652
15652
}
15653
15653
15654
15654
function narrowTypeByDiscriminant(type: Type, access: AccessExpression, narrowType: (t: Type) => Type): Type {
15655
15655
const propName = getAccessedPropertyName(access);
15656
- if (! propName) {
15656
+ if (propName === undefined ) {
15657
15657
return type;
15658
15658
}
15659
15659
const propType = getTypeOfPropertyOfType(type, propName);
0 commit comments