Skip to content
← Back to rules

oxc/bad-array-method-on-arguments 正确性

This rule is turned on by default.

它做了什么

当在 arguments 对象本身上调用数组方法时,此规则会生效。

为什么这是不好的?

arguments 对象 并不是真正的数组,而是一个类数组对象。在调用数组方法之前,应将其转换为真正的数组。否则,由于该方法不存在,将抛出 TypeError 异常。

请注意,如果你仅使用 TypeScript,可能不需要此规则,因为类型检查会在编译时捕获这些错误。

在现代 JavaScript 中,通常不推荐使用 arguments,你应该优先使用剩余参数(rest parameters),例如 function sum(...args)

示例

此规则的 错误 示例:

javascript
function add(x, y) {
  return x + y;
}
function sum() {
  return arguments.reduce(add, 0);
}

此规则的 正确 示例:

javascript
function add(x, y) {
  return x + y;
}

function sum(...args) {
  return args.reduce(add, 0);
}

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "rules": {
    "oxc/bad-array-method-on-arguments": "error"
  }
}
bash
oxlint --deny oxc/bad-array-method-on-arguments

参考资料