diff --git a/src/services/codefixes/inferFromUsage.ts b/src/services/codefixes/inferFromUsage.ts index 2055bbf3b31..bc324ac9e24 100644 --- a/src/services/codefixes/inferFromUsage.ts +++ b/src/services/codefixes/inferFromUsage.ts @@ -219,7 +219,9 @@ namespace ts.codefix { if (param.initializer || getJSDocType(param) || !isIdentifier(param.name)) return; const typeNode = inference.type && getTypeNodeIfAccessible(inference.type, param, program, host); - return typeNode && createJSDocParamTag(param.name, !!inference.isOptional, createJSDocTypeExpression(typeNode), ""); + const name = getSynthesizedClone(param.name); + setEmitFlags(name, EmitFlags.NoComments | EmitFlags.NoNestedComments); + return typeNode && createJSDocParamTag(name, !!inference.isOptional, createJSDocTypeExpression(typeNode), ""); }); addJSDocTags(changes, sourceFile, signature, paramTags); } diff --git a/tests/cases/fourslash/codeFixInferFromUsageCommentAfterParameter.ts b/tests/cases/fourslash/codeFixInferFromUsageCommentAfterParameter.ts new file mode 100644 index 00000000000..b46600d927f --- /dev/null +++ b/tests/cases/fourslash/codeFixInferFromUsageCommentAfterParameter.ts @@ -0,0 +1,24 @@ +/// + +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @noImplicitAny: true +// @Filename: important.js + + +////function coll(callback /*, name1, name2, ... */) { +//// return callback(this); +////} + +verify.codeFix({ + description: "Infer parameter types from usage", + index: 2, + newFileContent: +`/** + * @param {(arg0: any) => void} callback + */ +function coll(callback /*, name1, name2, ... */) { + return callback(this); +}`, +});