Address CR feedback

This commit is contained in:
Anders Hejlsberg 2018-10-11 08:45:47 -07:00
parent 840214f1ea
commit dd6365615d

View file

@ -9312,12 +9312,11 @@ namespace ts {
propType; propType;
} }
if (everyType(objectType, isTupleType) && isNumericLiteralName(propName) && +propName >= 0) { if (everyType(objectType, isTupleType) && isNumericLiteralName(propName) && +propName >= 0) {
const restType = mapType(objectType, t => getRestTypeOfTupleType(<TupleTypeReference>t) || undefinedType); if (accessNode && everyType(objectType, t => !(<TupleTypeReference>t).target.hasRestElement)) {
if (restType === undefinedType && accessNode) {
const indexNode = accessNode.kind === SyntaxKind.ElementAccessExpression ? accessNode.argumentExpression : accessNode.indexType; 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)); error(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType));
} }
return restType; return mapType(objectType, t => getRestTypeOfTupleType(<TupleTypeReference>t) || undefinedType);
} }
} }
if (!(indexType.flags & TypeFlags.Nullable) && isTypeAssignableToKind(indexType, TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.ESSymbolLike)) { if (!(indexType.flags & TypeFlags.Nullable) && isTypeAssignableToKind(indexType, TypeFlags.StringLike | TypeFlags.NumberLike | TypeFlags.ESSymbolLike)) {