Skip to content
An enhanced version of the ESLint core rule no-unused-vars with allowances for experimental object rest properties.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test/rules
.eslintrc
.gitignore
.travis.yml
README.md
package.json

README.md

build status test coverage npm

eslint-plugin-no-unused-vars-rest

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.

Installation

Install ESLint and eslint-plugin-no-unused-vars-rest:

$ npm install --save-dev eslint eslint-plugin-no-unused-vars-rest

Usage

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;
You can’t perform that action at this time.