版本

prefer-rest-params

要求使用 rest 参数而不是 arguments

ES2015 中有 rest 参数。我们可以使用此功能来代替 arguments 变量实现可变参数函数。

arguments 没有 Array.prototype 的方法,所以使用起来有些不方便。

规则详情

此规则旨在标记 arguments 变量的使用。

示例

此规则的错误代码示例

在 Playground 中打开
/*eslint prefer-rest-params: "error"*/

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);
}

此规则的正确代码示例

在 Playground 中打开
/*eslint prefer-rest-params: "error"*/

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

function foo(action, ...args) {
    action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
}

// Note: the implicit arguments can be overwritten.
function foo(arguments) {
    console.log(arguments); // This is the first argument.
}
function foo() {
    var arguments = 0;
    console.log(arguments); // This is a local variable.
}

何时不使用它

此规则不应在 ES3/5 环境中使用。

在 ES2015 (ES6) 或更高版本中,如果您不想收到有关 arguments 变量的通知,则可以安全地禁用此规则。

版本

此规则是在 ESLint v2.0.0-alpha-1 中引入的。

资源

更改语言