From 148a060daa782c622388dec6a956af279bee4eca Mon Sep 17 00:00:00 2001 From: ivanwonder Date: Mon, 2 Dec 2019 15:37:03 +0800 Subject: [PATCH] fix(language-service): return the js primitive type name (#34177) PR Close #34177 --- packages/language-service/src/typescript_symbols.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/language-service/src/typescript_symbols.ts b/packages/language-service/src/typescript_symbols.ts index 52c1d74201..44899e1472 100644 --- a/packages/language-service/src/typescript_symbols.ts +++ b/packages/language-service/src/typescript_symbols.ts @@ -246,7 +246,13 @@ class TypeWrapper implements Symbol { get name(): string { const symbol = this.tsType.symbol; - return (symbol && symbol.name) || ''; + if (symbol) { + return symbol.name; + } else { + // the js primitive type(e.g. 'string') doesn't have Symbol. + // use the ts.TypeChecker to get the type name. + return this.context.checker.typeToString(this.tsType); + } } public readonly kind: DeclarationKind = 'type';