diff --git a/src/services/refactors/convertToNamedParameters.ts b/src/services/refactors/convertToNamedParameters.ts index 41c9935deb6..bf11c5df8b7 100644 --- a/src/services/refactors/convertToNamedParameters.ts +++ b/src/services/refactors/convertToNamedParameters.ts @@ -142,7 +142,7 @@ namespace ts.refactor.convertToNamedParameters { } function isValidParameterDeclaration(paramDeclaration: ParameterDeclaration): paramDeclaration is ValidParameterDeclaration { - return !paramDeclaration.modifiers && isIdentifier(paramDeclaration.name); + return !paramDeclaration.modifiers && !paramDeclaration.decorators && isIdentifier(paramDeclaration.name); } } @@ -361,5 +361,6 @@ namespace ts.refactor.convertToNamedParameters { interface ValidParameterDeclaration extends ParameterDeclaration { name: Identifier; modifiers: undefined; + decorators: undefined; } } \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters30.ts b/tests/cases/fourslash/refactorConvertToNamedParameters30.ts new file mode 100644 index 00000000000..180798af95d --- /dev/null +++ b/tests/cases/fourslash/refactorConvertToNamedParameters30.ts @@ -0,0 +1,11 @@ +/// + +////declare function required(target: Object, propertyKey: string | symbol, parameterIndex: number) +////class C { +//// /*a*/bar/*b*/(@required a: number, b: number) { +//// +//// } +////} + +goTo.select("a", "b"); +verify.not.refactorAvailable("Convert to named parameters"); \ No newline at end of file