DEPRECATED: As of ESLint 3.15.0 this functionality is supported by the core no-unused-vars rule.
An enhanced version of the ESLint core rule no-unused-vars with allowances for experimental object rest properties.
This plugin provides a single rule which functions the same as the core rule no-unused-vars
, except it adds the ignoreDestructuredVarsWithRest
option. Enabling this option will allow unused variables appearing in destructuring assignments that also contain experimental rest properties. This is useful for shallow-cloning an object while omitting certain properties.
Install ESLint and eslint-plugin-no-unused-vars-rest
:
$ npm install --save-dev eslint eslint-plugin-no-unused-vars-rest
Add no-unused-vars-rest
to the plugins section of your .eslintrc
configuration file, and configure the rule under the rules section. Don't forget to disable the core rule no-unused-vars
.
{
"plugins": [
"no-unused-vars-rest"
],
"rules": {
"no-unused-vars": 0,
"no-unused-vars-rest/no-unused-vars": [2, {"ignoreDestructuredVarsWithRest": true}]
}
}
Alternatively you may use the plugin's recommended configuration, which applies the above configuration.
{
"extends": ["plugin:no-unused-vars-rest/recommended"]
}
When not using this rule the following pattern is considered a problem by the core rule no-unused-vars
:
const { extra, ...rest } = blah; // Error 'extra' is defined but never used.
return rest;
When using this rule with ignoreDestructuredVarsWithRest: true
the following pattern is acceptable:
const { extra, ...rest } = blah;
return rest;