unicorn/no-array-callback-reference 細部にこだわる
機能
イテレータメソッドに関数の参照を直接渡すことを禁止します
なぜ問題なのか?
関数をイテレータメソッドに渡すと、関数が変更された際に、イテレータがその関数にさらに2つのパラメータ(インデックスと配列)を渡していることに気づかずに、関数シグネチャが変更されてしまうことがあり、予期しない動作を引き起こす可能性があります。
例
このルールに対して誤りなコードの例:
js
const foo = array.map(callback);
array.forEach(callback);
const result = array.filter(lib.method);このルールに対して正しいコードの例:
js
const foo = array.map((element) => callback(element));
array.forEach((element) => {
callback(element);
});
const result = array.filter((element) => lib.method(element));
// ビルトイン関数は許可されています
const foo = array.map(String);
const bar = array.filter(Boolean);使用方法
設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:
json
{
"rules": {
"unicorn/no-array-callback-reference": "error"
}
}bash
oxlint --deny unicorn/no-array-callback-reference