diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 18e57303c12..332e4a7fdc1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7257,7 +7257,7 @@ namespace ts { accessExpression && checkThatExpressionIsProperSymbolReference(accessExpression.argumentExpression, indexType, /*reportError*/ false) ? getPropertyNameForKnownSymbolName(((accessExpression.argumentExpression).name).text) : undefined; - if (propName) { + if (propName !== undefined) { const prop = getPropertyOfType(objectType, propName); if (prop) { if (accessExpression) { diff --git a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.errors.txt b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.errors.txt index 8a068048f3b..b3f3b4bc6e0 100644 --- a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.errors.txt +++ b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.errors.txt @@ -4,4 +4,5 @@ tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts(1,9): error TS7017: E ==== tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts (1 errors) ==== var x = {}["hello"]; ~~~~~~~~~~~ -!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature. \ No newline at end of file +!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature. + var y: string = { '': 'foo' }['']; \ No newline at end of file diff --git a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.js b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.js index cc2309192e1..2ea3291e5db 100644 --- a/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.js +++ b/tests/baselines/reference/noImplicitAnyStringIndexerOnObject.js @@ -1,5 +1,7 @@ //// [noImplicitAnyStringIndexerOnObject.ts] -var x = {}["hello"]; +var x = {}["hello"]; +var y: string = { '': 'foo' }['']; //// [noImplicitAnyStringIndexerOnObject.js] var x = {}["hello"]; +var y = { '': 'foo' }['']; diff --git a/tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts b/tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts index 814c6d2fa6d..9a84cc328b2 100644 --- a/tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts +++ b/tests/cases/compiler/noImplicitAnyStringIndexerOnObject.ts @@ -1,3 +1,4 @@ // @noimplicitany: true -var x = {}["hello"]; \ No newline at end of file +var x = {}["hello"]; +var y: string = { '': 'foo' }['']; \ No newline at end of file