JSHint silence "Variable is defined but never used"

javascript, jshint

Solution

For global variables

Add

/* exported variableNameHere */

at the top of your script. In your case, replace `variableNameHere` with `attrs`. This tells jshint that `attrs` will be used elsewhere.

For multiple variables:

/* exported attrs, somethingElse, somethingElse2 */

Docs here.

For local variables

You can ignore all unused local variables within a given function scope using the method outlined in this jshint commit and this GitHub issue. Example:

//jshint unused:true
var a;

function foo(b) {
    //jshint unused:false
    return 1;
}

foo();

// ->
// Line 1: 'a' is defined but never used.

This doesn't seem to be documented anywhere else, but works when tested on http://jshint.com/

Problem

I want to silence the JSHint warning "attrs is defined but never used" for the variable `attrs`. However I do not want to use the option `/* jshint unused:false */` since this will turn off the warning altogether. I want the warning to be disabled only for `attrs`.

Original source