diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index b6ba02b987c..3ad2cb72507 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3960,7 +3960,7 @@ namespace ts { shorthandDeclaration.equalsToken = equalsToken; shorthandDeclaration.objectAssignmentInitializer = allowInAnd(parseAssignmentExpressionOrHigher); } - return finishNode(shorthandDeclaration); + return addJSDocComment(finishNode(shorthandDeclaration)); } else { const propertyAssignment = createNode(SyntaxKind.PropertyAssignment, fullStart); @@ -3969,7 +3969,7 @@ namespace ts { propertyAssignment.questionToken = questionToken; parseExpected(SyntaxKind.ColonToken); propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher); - return finishNode(propertyAssignment); + return addJSDocComment(finishNode(propertyAssignment)); } } diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 02b8385d0ff..f794bc81f39 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1220,6 +1220,11 @@ namespace ts { if (isSourceOfAssignmentExpressionStatement) { return node.parent.parent.jsDocComment; } + + const isPropertyAssignmentExpression = node.parent && node.parent.kind === SyntaxKind.PropertyAssignment; + if (isPropertyAssignmentExpression) { + return node.parent.jsDocComment; + } } return undefined; diff --git a/tests/cases/fourslash/jsDocFunctionSignatures3.ts b/tests/cases/fourslash/jsDocFunctionSignatures3.ts new file mode 100644 index 00000000000..3679035d31d --- /dev/null +++ b/tests/cases/fourslash/jsDocFunctionSignatures3.ts @@ -0,0 +1,32 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js + +//// var someObject = { +//// /** +//// * @param {string} param1 Some string param. +//// * @param {number} parm2 Some number param. +//// */ +//// someMethod: function(param1, param2) { +//// console.log(param1/*1*/); +//// return false; +//// }, +//// /** +//// * @param {number} p1 Some number param. +//// */ +//// otherMethod(p1) { +//// p1/*2*/ +//// } +//// +//// }; + +goTo.marker('1'); +edit.insert('.'); +verify.memberListContains('substr', undefined, undefined, 'method'); +edit.backspace(); + +goTo.marker('2'); +edit.insert('.'); +verify.memberListContains('toFixed', undefined, undefined, 'method'); +edit.backspace();