noParameterAssign
Diagnostic Category: lint/style/noParameterAssign
Since: v1.0.0
Sources:
- Same as: 
no-param-reassign 
Description
Section titled DescriptionDisallow reassigning function parameters.
Assignment to a function parameters can be misleading and confusing,
as modifying parameters will also mutate the arguments object.
It is often unintended and indicative of a programmer error.
In contrast to the ESLint rule, this rule cannot be configured to report assignments to a property of a parameter.
Examples
Section titled ExamplesInvalid
Section titled Invalidfunction f(param) {    param = 13;}code-block.js:2:5 lint/style/noParameterAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Reassigning a function parameter is confusing.
  
    1 │ function f(param) {
  > 2 │     param = 13;
      │     ^^^^^
    3 │ }
    4 │ 
  
  ℹ The parameter is declared here:
  
  > 1 │ function f(param) {
      │            ^^^^^
    2 │     param = 13;
    3 │ }
  
  ℹ Use a local variable instead.
  
function f(param) {    param++;}code-block.js:2:5 lint/style/noParameterAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Reassigning a function parameter is confusing.
  
    1 │ function f(param) {
  > 2 │     param++;
      │     ^^^^^
    3 │ }
    4 │ 
  
  ℹ The parameter is declared here:
  
  > 1 │ function f(param) {
      │            ^^^^^
    2 │     param++;
    3 │ }
  
  ℹ Use a local variable instead.
  
function f(param) {    for (param of arr) {}}code-block.js:2:10 lint/style/noParameterAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Reassigning a function parameter is confusing.
  
    1 │ function f(param) {
  > 2 │     for (param of arr) {}
      │          ^^^^^
    3 │ }
    4 │ 
  
  ℹ The parameter is declared here:
  
  > 1 │ function f(param) {
      │            ^^^^^
    2 │     for (param of arr) {}
    3 │ }
  
  ℹ Use a local variable instead.
  
class C {    constructor(readonly prop: number) {        prop++    }}code-block.ts:3:9 lint/style/noParameterAssign ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ Reassigning a function parameter is confusing.
  
    1 │ class C {
    2 │     constructor(readonly prop: number) {
  > 3 │         prop++
      │         ^^^^
    4 │     }
    5 │ }
  
  ℹ The parameter is declared here:
  
    1 │ class C {
  > 2 │     constructor(readonly prop: number) {
      │                          ^^^^^^^^^^^^
    3 │         prop++
    4 │     }
  
  ℹ Use a local variable instead.
  
Valid
Section titled Validfunction f(param) {    let local = param;}How to configure
Section titled How to configure{  "linter": {    "rules": {      "style": {        "noParameterAssign": "error"      }    }  }}