From dd6365615dfe65548578d7ac0d8d92d3f78f7414 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 11 Oct 2018 08:45:47 -0700 Subject: [PATCH] Address CR feedback --- src/compiler/checker.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 33d23bd11e..c2e8645518 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9312,12 +9312,11 @@ namespace ts { propType; } if (everyType(objectType, isTupleType) && isNumericLiteralName(propName) && +propName >= 0) { - const restType = mapType(objectType, t => getRestTypeOfTupleType(t) || undefinedType); - if (restType === undefinedType && accessNode) { + if (accessNode && everyType(objectType, t => !(t).target.hasRestElement)) { const indexNode = accessNode.kind === SyntaxKind.ElementAccessExpression ? accessNode.argumentExpression : accessNode.indexType; error(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType)); } - return restType; + return mapType(objectType, t => getRestTypeOfTupleType(t) || undefinedType); } } if (!(indexType.flags & TypeFlags.Nullable) && isTypeAssignableToKind(indexType, TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.ESSymbolLike)) {