From cae12cb144cfb6954227251b0bd14f387046076a Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Thu, 19 Oct 2017 09:13:31 -0700 Subject: [PATCH] Fix getParameterSymbolFromJSDoc --- src/compiler/utilities.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 980a8cc61c4..5bc8e78f749 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1606,8 +1606,19 @@ namespace ts { return undefined; } const name = node.name.escapedText; - const func = getJSDocHost(node); - if (!isFunctionLike(func)) { + const decl = getJSDocHost(node); + let func: FunctionLike; + if (isExpressionStatement(decl) && isBinaryExpression(decl.expression) && isFunctionLike(decl.expression.right)) { + func = decl.expression.right; + } + else if (isVariableStatement(decl) && decl.declarationList.declarations.length === 1 && isVariableDeclaration(decl.declarationList.declarations[0]) + && isFunctionLike(decl.declarationList.declarations[0].initializer)) { + func = decl.declarationList.declarations[0].initializer as FunctionLike; + } + else if (isFunctionLike(decl)) { + func = decl; + } + else { return undefined; } const parameter = find(func.parameters, p =>