mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-15 21:36:50 -05:00
Merge pull request #1388 from Microsoft/indexer_name
fetch actual parameter name of indexer when printing literal type
This commit is contained in:
@@ -1307,6 +1307,17 @@ module ts {
|
||||
buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, SymbolFlags.Value);
|
||||
}
|
||||
|
||||
function getIndexerParameterName(type: ObjectType, indexKind: IndexKind, fallbackName: string): string {
|
||||
var declaration = <SignatureDeclaration>getIndexDeclarationOfSymbol(type.symbol, indexKind);
|
||||
if (!declaration) {
|
||||
// declaration might not be found if indexer was added from the contextual type.
|
||||
// in this case use fallback name
|
||||
return fallbackName;
|
||||
}
|
||||
Debug.assert(declaration.parameters.length !== 0);
|
||||
return declarationNameToString(declaration.parameters[0].name);
|
||||
}
|
||||
|
||||
function writeLiteralType(type: ObjectType, flags: TypeFormatFlags) {
|
||||
var resolved = resolveObjectOrUnionTypeMembers(type);
|
||||
if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) {
|
||||
@@ -1359,7 +1370,8 @@ module ts {
|
||||
if (resolved.stringIndexType) {
|
||||
// [x: string]:
|
||||
writePunctuation(writer, SyntaxKind.OpenBracketToken);
|
||||
writer.writeParameter("x");
|
||||
resolved.symbol
|
||||
writer.writeParameter(getIndexerParameterName(resolved, IndexKind.String, /*fallbackName*/"x"));
|
||||
writePunctuation(writer, SyntaxKind.ColonToken);
|
||||
writeSpace(writer);
|
||||
writeKeyword(writer, SyntaxKind.StringKeyword);
|
||||
@@ -1373,7 +1385,7 @@ module ts {
|
||||
if (resolved.numberIndexType) {
|
||||
// [x: number]:
|
||||
writePunctuation(writer, SyntaxKind.OpenBracketToken);
|
||||
writer.writeParameter("x");
|
||||
writer.writeParameter(getIndexerParameterName(resolved, IndexKind.Number, /*fallbackName*/"x"));
|
||||
writePunctuation(writer, SyntaxKind.ColonToken);
|
||||
writeSpace(writer);
|
||||
writeKeyword(writer, SyntaxKind.NumberKeyword);
|
||||
|
||||
Reference in New Issue
Block a user