Versions

prefer-rest-params

Require rest parameters instead of arguments

在ES2015中,有剩余参数。 我们可以将该功能用于变量函数而不是 arguments 变量。

arguments 没有 Array.prototype 方法,所以不太方便。

规则细节

这条规则的目的是标记 arguments 变量的使用。

示例

使用此规则的错误示例:

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

使用此规则的正确示例:

Open in 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 变量,你可以安全地禁用此规则。

Version

This rule was introduced in ESLint v2.0.0-alpha-1.

Resources

更改语言