diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0567712f11da3..82ec2c275f711 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -13785,13 +13785,14 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { && isTypeUsableAsIndexSignature(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached((node as ElementAccessExpression).argumentExpression)); } - function isLateBindableAST(node: DeclarationName) { - if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) { - return false; - } - const expr = isComputedPropertyName(node) ? node.expression : node.argumentExpression; - return isEntityNameExpression(expr); - } + function isLateBindableAST(node: DeclarationName) { + if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) { + return false; + } + const expr = isComputedPropertyName(node) ? node.expression : node.argumentExpression; + return isEntityNameExpression(expr) || + isElementAccessExpression(expr) && isStringLiteral(expr.argumentExpression) && isEntityNameExpression(expr.expression); + } function isTypeUsableAsIndexSignature(type: Type): boolean { return isTypeAssignableTo(type, stringNumberSymbolType); diff --git a/src/lib/es2015.collection.d.ts b/src/lib/es2015.collection.d.ts index 43129531845e4..a01b21dded868 100644 --- a/src/lib/es2015.collection.d.ts +++ b/src/lib/es2015.collection.d.ts @@ -94,7 +94,7 @@ interface Set { */ has(value: T): boolean; /** - * @returns the number of (unique) elements in Set. + * @returns the number of (unique) elements in the Set. */ readonly size: number; }