Skip to content
← Back to rules

unicorn/no-array-callback-reference 严谨

An auto-fix is available for this rule.

它做了什么

防止直接将函数引用传递给迭代器方法

为什么这是不好的?

将函数传递给迭代器方法可能导致问题,因为当函数被修改时,可能未意识到迭代器会额外传入两个参数(索引和数组)。这可能导致函数签名改变时出现意外行为。

示例

此规则的错误代码示例:

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

参考资料