Skip to content
← Back to rules

unicorn/no-array-callback-reference Pedantic

🚧 An auto-fix is planned for this rule, but not implemented at this time.

它的作用

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

为什么这不好?

将函数传递给迭代器方法可能会引发问题,因为函数在不知不觉中被修改了,而迭代器会向它额外传递 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);

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/no-array-callback-reference": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/no-array-callback-reference": "error",
  },
});
bash
oxlint --deny unicorn/no-array-callback-reference

版本

此规则于 v1.19.0 中新增。

参考资料