diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 17c10c01235..b78d54a03be 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -14633,7 +14633,7 @@ namespace ts { case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: const propName = getAccessedPropertyName(node); - if (propName) { + if (propName !== undefined) { const key = getFlowCacheKey((node).expression); return key && key + "." + propName; } @@ -14694,7 +14694,7 @@ namespace ts { const type = getDeclaredTypeOfReference(expr.expression); if (type) { const propName = getAccessedPropertyName(expr); - return propName && getTypeOfPropertyOfType(type, propName); + return propName !== undefined ? getTypeOfPropertyOfType(type, propName) : undefined; } } return undefined; @@ -15645,7 +15645,7 @@ namespace ts { return false; } const name = getAccessedPropertyName(expr); - if (!name) { + if (name === undefined) { return false; } return isMatchingReference(reference, expr.expression) && isDiscriminantProperty(computedType, name); @@ -15653,7 +15653,7 @@ namespace ts { function narrowTypeByDiscriminant(type: Type, access: AccessExpression, narrowType: (t: Type) => Type): Type { const propName = getAccessedPropertyName(access); - if (!propName) { + if (propName === undefined) { return type; } const propType = getTypeOfPropertyOfType(type, propName);