Skip to content
← Back to rules

eslint/prefer-rest-params 风格

它的作用

禁止使用 arguments 对象,而是强制使用剩余参数(rest parameters)。

为什么这是不好的?

arguments 对象没有来自 Array.prototype 的方法,因此在进行类似数组的操作时非常不方便。
使用剩余参数可以更直观、高效地处理可变数量的参数。

示例

此规则的 错误 代码示例:

javascript
function foo() {
  console.log(arguments);
}

function foo(action) {
  var args = Array.prototype.slice.call(arguments, 1);
  action.apply(null, args);
}

function foo(action) {
  var args = [].slice.call(arguments, 1);
  action.apply(null, args);
}

此规则的 正确 代码示例:

javascript
function foo(...args) {
  console.log(args);
}

function foo(action, ...args) {
  action.apply(null, args); // 或使用 `action(...args)`(与 `prefer-spread` 规则相关)。
}

// 注意:隐式的 `arguments` 可能会被遮蔽。
function foo(arguments) {
  console.log(arguments); // 这指的是第一个参数。
}
function foo() {
  var arguments = 0;
  console.log(arguments); // 这是一个局部变量。
}

如何使用

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

json
{
  "rules": {
    "prefer-rest-params": "error"
  }
}
bash
oxlint --deny prefer-rest-params

参考资料