diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index c6ff38888a2..2ae303af37a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4527,7 +4527,7 @@ namespace ts { return links.resolvedType; } - function getStringLiteralType(text: string): StringLiteralType { + function getStringLiteralTypeForText(text: string): StringLiteralType { if (hasProperty(stringLiteralTypes, text)) { return stringLiteralTypes[text]; } @@ -4537,10 +4537,10 @@ namespace ts { return type; } - function getTypeFromStringLiteral(node: StringLiteral | StringLiteralTypeNode): Type { + function getTypeFromStringLiteralTypeNode(node: StringLiteralTypeNode): Type { const links = getNodeLinks(node); if (!links.resolvedType) { - links.resolvedType = getStringLiteralType(node.text); + links.resolvedType = getStringLiteralTypeForText(node.text); } return links.resolvedType; } @@ -4583,7 +4583,7 @@ namespace ts { case SyntaxKind.ThisType: return getTypeFromThisTypeNode(node); case SyntaxKind.StringLiteralType: - return getTypeFromStringLiteral(node); + return getTypeFromStringLiteralTypeNode(node); case SyntaxKind.TypeReference: return getTypeFromTypeReference(node); case SyntaxKind.TypePredicate: @@ -8790,7 +8790,7 @@ namespace ts { // for the argument. In that case, we should check the argument. if (argType === undefined) { argType = arg.kind === SyntaxKind.StringLiteral && !reportErrors - ? getStringLiteralType((arg).text) + ? getStringLiteralTypeForText((arg).text) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); } @@ -8985,7 +8985,7 @@ namespace ts { case SyntaxKind.Identifier: case SyntaxKind.NumericLiteral: case SyntaxKind.StringLiteral: - return getStringLiteralType((element.name).text); + return getStringLiteralTypeForText((element.name).text); case SyntaxKind.ComputedPropertyName: const nameType = checkComputedPropertyName(element.name); @@ -10607,8 +10607,7 @@ namespace ts { function checkStringLiteralExpression(node: StringLiteral): Type { const contextualType = getContextualType(node); if (contextualType && contextualTypeIsStringLiteralType(contextualType)) { - // TODO (drosen): Consider using getTypeFromStringLiteral instead - return getStringLiteralType(node.text); + return getStringLiteralTypeForText(node.text); } return stringType;