diff --git a/src/services/codefixes/fixUnusedIdentifier.ts b/src/services/codefixes/fixUnusedIdentifier.ts index 8439c1e8fc3..7644c8df269 100644 --- a/src/services/codefixes/fixUnusedIdentifier.ts +++ b/src/services/codefixes/fixUnusedIdentifier.ts @@ -154,6 +154,13 @@ namespace ts.codefix { } if (isIdentifier(token) && canPrefix(token)) { changes.replaceNode(sourceFile, token, createIdentifier(`_${token.text}`)); + if (isParameter(token.parent)) { + getJSDocParameterTags(token.parent).forEach((tag) => { + if (isIdentifier(tag.name)) { + changes.replaceNode(sourceFile, tag.name, createIdentifier(`_${tag.name.text}`)); + } + }); + } } } diff --git a/tests/cases/fourslash/codeFixUnusedIdentifier_all_prefix.ts b/tests/cases/fourslash/codeFixUnusedIdentifier_all_prefix.ts index f77fef6510f..4eb7137d365 100644 --- a/tests/cases/fourslash/codeFixUnusedIdentifier_all_prefix.ts +++ b/tests/cases/fourslash/codeFixUnusedIdentifier_all_prefix.ts @@ -3,6 +3,10 @@ // @noUnusedLocals: true // @noUnusedParameters: true +/////** +//// * @param a First parameter. +//// * @param b Second parameter. +//// */ ////function f(a, b) { //// const x = 0; // Can't be prefixed, ignored ////} @@ -12,7 +16,11 @@ verify.codeFixAll({ fixId: "unusedIdentifier_prefix", fixAllDescription: "Prefix all unused declarations with '_' where possible", newFileContent: -`function f(_a, _b) { +`/** + * @param _a First parameter. + * @param _b Second parameter. + */ +function f(_a, _b) { const x = 0; // Can't be prefixed, ignored } type Length = T extends ArrayLike ? number : never;`, diff --git a/tests/cases/fourslash/codeFixUnusedIdentifier_prefix.ts b/tests/cases/fourslash/codeFixUnusedIdentifier_prefix.ts new file mode 100644 index 00000000000..80b2b9bb75c --- /dev/null +++ b/tests/cases/fourslash/codeFixUnusedIdentifier_prefix.ts @@ -0,0 +1,25 @@ +/// + +// @noUnusedLocals: true +// @noUnusedParameters: true + +/////** +//// * @param a +//// * @param b +//// */ +////function f(a, b) { +//// const x = a; +////} + +verify.codeFix({ + description: "Prefix 'b' with an underscore", + index: 1, + newFileContent: +`/** + * @param a + * @param _b + */ +function f(a, _b) { + const x = a; +}`, +});