prefer-rest-params

需要rest参数而不是arguments

ES2015 中有剩余参数。我们可以将该特性用于可变参数函数而不是 arguments 变量。

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

规则详情

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

示例

此规则的错误代码示例:

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

6RXgRVcYea97/4k5PNW/nItJttC+MHc4vVjxm8VW+ghbeqd3KsyvO/XAfiqXOEJI

/*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.
}

何时不使用

c0VrsdDPbkqi0SlvOvxukO5CEacj0UYCjT3tdpJK1J8BXoiSyvlxx6INm2Cwe99b

IU1YlttwZfIeSQAiZW48qNuoP/TWYf4/Y30EDiCb7V/Fkj7a+/gDr7hU3HVn4cYkrCeJDinmrvIezBpX1NIH+5ZPk8R/HmSwDAiYm73SOGW+qsL4ql+fHLzoiiO78CstUs5VQBj4Zl1uH4NBIGj6apvn0lzCgP/JAqjrMm5oRvmU538sznCH0Cxpif/NFuVP