eslint/prefer-spread スタイル
何ができるか
可変長引数関数を呼び出す際に、spread 演算子を使用することを要求します。
なぜ悪いのか
ES2015以前は、可変長引数関数を呼び出すために Function.prototype.apply() を使用しなければなりませんでした。
javascript
var args = [1, 2, 3, 4];
Math.max.apply(Math, args);ES2015以降では、spread 構文を使用して可変長引数関数を呼び出すことができます。
javascript
var args = [1, 2, 3, 4];
Math.max(...args);例
このルールに違反する不正なコードの例:
javascript
foo.apply(undefined, args);
foo.apply(null, args);
obj.foo.apply(obj, args);このルールに準拠する正しいコードの例:
javascript
// spread 構文の使用
foo(...args);
obj.foo(...args);
// `this` のバインディングが異なる。
foo.apply(obj, args);
obj.foo.apply(null, args);
obj.foo.apply(otherObj, args);
// 引数リストが可変長ではない。
// これらのケースは `no-useless-call` ルールで警告されます。
foo.apply(undefined, [1, 2, 3]);
foo.apply(null, [1, 2, 3]);
obj.foo.apply(obj, [1, 2, 3]);使用方法
設定ファイルまたは CLI でこのルールを有効化するには、以下の通りです:
json
{
"rules": {
"prefer-spread": "error"
}
}bash
oxlint --deny prefer-spread