From 62e6e6ae2721090289947867e1c0e8b40c92bb4d Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 14 Aug 2018 13:48:17 -0700 Subject: [PATCH] Remove special handling for JSDocPropertyLikeTag in getJSSpecialType (#26432) * Remove special handling for JSDocPropertyLikeTag in getJSSpecialType * Reduce nesting --- src/compiler/checker.ts | 3 --- src/compiler/utilities.ts | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 691462a6db..f3fba14221 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5090,9 +5090,6 @@ namespace ts { if (!isInJavaScriptFile(decl)) { return undefined; } - else if (isJSDocPropertyLikeTag(decl) && decl.typeExpression) { - return getTypeFromTypeNode(decl.typeExpression.type); - } // Handle certain special assignment kinds, which happen to union across multiple declarations: // * module.exports = expr // * exports.p = expr diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 9b4614f45c..536409b8a0 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -3358,7 +3358,9 @@ namespace ts { * parsed in a JavaScript file, gets the type annotation from JSDoc. */ export function getEffectiveTypeAnnotationNode(node: Node): TypeNode | undefined { - return (node as HasType).type || (isInJavaScriptFile(node) ? getJSDocType(node) : undefined); + const type = (node as HasType).type; + if (type || !isInJavaScriptFile(node)) return type; + return isJSDocPropertyLikeTag(node) ? node.typeExpression && node.typeExpression.type : getJSDocType(node); } export function getTypeAnnotationNode(node: Node): TypeNode | undefined {