Skip to content
← Back to rules

eslint/no-param-reassign 制限

何をするか

関数パラメータの再代入、またはオプションでそのプロパティの再代入を禁止します。

なぜ問題なのか

パラメータの再代入は、関数に渡された元の引数に依存している場合、予期しない振る舞いにつながる可能性があります。パラメータのプロパティを変更すると、同様に意外な結果になり、理解しにくくなります。

javascript
function foo(bar) {
  bar = 1;
}

function baz(qux) {
  qux.prop = 2; // `props` オプションが有効な場合
}

設定

このルールは以下のプロパティを持つ設定オブジェクトを受け入れます。

ignorePropertyModificationsFor

type: string[]

default: []

プロパティの変更を無視するパラメータ名の配列。

ignorePropertyModificationsForRegex

type: string[]

プロパティの変更を無視するパラメータ名の正規表現パターン(文字列として)の配列。 この正規表現には Rust regex の構文 が使用されており、JavaScript の正規表現に存在するすべての機能が利用できるわけではありません。

props

type: boolean

default: false

true の場合、パラメータのプロパティへの変更もチェックします。

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "no-param-reassign": "error"
  }
}
bash
oxlint --deny no-param-reassign

参照