unicorn/no-array-callback-reference 严谨
它做了什么
防止直接将函数引用传递给迭代器方法
为什么这是不好的?
将函数传递给迭代器方法可能导致问题,因为当函数被修改时,可能未意识到迭代器会额外传入两个参数(索引和数组)。这可能导致函数签名改变时出现意外行为。
示例
此规则的错误代码示例:
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);如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"unicorn/no-array-callback-reference": "error"
}
}bash
oxlint --deny unicorn/no-array-callback-reference