mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-05 08:11:54 +00:00

includes a (minimal) working wrapper Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
62 lines
1.4 KiB
Markdown
62 lines
1.4 KiB
Markdown
# Suggest using the rest parameters instead of `arguments` (prefer-rest-params)
|
|
|
|
There are rest parameters in ES2015.
|
|
We can use that feature for variadic functions instead of the `arguments` variable.
|
|
|
|
`arguments` does not have methods of `Array.prototype`, so it's a bit of an inconvenience.
|
|
|
|
## Rule Details
|
|
|
|
This rule is aimed to flag usage of `arguments` variables.
|
|
|
|
## Examples
|
|
|
|
Examples of **incorrect** code for this rule:
|
|
|
|
```js
|
|
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);
|
|
}
|
|
```
|
|
|
|
Examples of **correct** code for this rule:
|
|
|
|
```js
|
|
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.
|
|
}
|
|
```
|
|
|
|
## When Not To Use It
|
|
|
|
This rule should not be used in ES3/5 environments.
|
|
|
|
In ES2015 (ES6) or later, if you don't want to be notified about `arguments` variables, then it's safe to disable this rule.
|
|
|
|
## Related Rules
|
|
|
|
* [prefer-spread](prefer-spread.md)
|