diff --git a/src/services/completions.ts b/src/services/completions.ts index af3698d5cd1..d64692f2dce 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -854,7 +854,7 @@ namespace ts.Completions { insideJsDocTagTypeExpression = isCurrentlyEditingNode(tag.typeExpression); } } - if (isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { + if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { return { kind: CompletionDataKind.JsDocParameterName, tag }; } } diff --git a/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts b/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts new file mode 100644 index 00000000000..b638c2d0cc8 --- /dev/null +++ b/tests/cases/fourslash/completionsJsdocParamTypeBeforeName.ts @@ -0,0 +1,18 @@ +/// +//// /** @param /*name1*/ {/*type*/} /*name2*/ */ +//// function toString(obj) {} + +verify.completions({ + marker: "type", + exact: completion.globalTypes +}); + +verify.completions({ + marker: "name1", + exact: ["obj"] +}); + +verify.completions({ + marker: "name2", + exact: ["obj"] +});