Skip to content
← Back to rules

eslint/prefer-rest-params スタイル

何をするか

arguments オブジェクトの使用を禁止し、代わりにレストパラメータの使用を強制します。

なぜ問題なのか

arguments オブジェクトは Array.prototype からメソッドを継承しないため、配列のような操作が不便です。 レストパラメータを使用することで、可変長引数をより直感的かつ効率的に扱えるようになります。

このルールに違反する誤ったコードの例:

javascript
function foo() {
  console.log(arguments);
}

function foo(action) {
  var args = Array.prototype.slice.call(arguments, 1);
  action.apply(null, args);
}

function foo(action) {
  var args = [].slice.call(arguments, 1);
  action.apply(null, args);
}

このルールに従う正しいコードの例:

javascript
function foo(...args) {
  console.log(args);
}

function foo(action, ...args) {
  action.apply(null, args); // または `action(...args)` と記述(`prefer-spread` ルールに関連)。
}

// 注意:暗黙的な `arguments` はシャドーされる可能性がある。
function foo(arguments) {
  console.log(arguments); // これは最初の引数を指す。
}
function foo() {
  var arguments = 0;
  console.log(arguments); // これはローカル変数である。
}

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、以下のようにします:

json
{
  "rules": {
    "prefer-rest-params": "error"
  }
}
bash
oxlint --deny prefer-rest-params

参照