Prevent JSHint warning that 'functionName is defined but never used'

Undistraction picture Undistraction · Sep 26, 2012 · Viewed 46.8k times · Source

I have just started using JSHint (through the Sublime-Linter package for Sublime Text 2). I would like to suppress its warnings regarding functions that are used before they are defined, as I see no problem with using function definitions like this. For example, the following code generates warnings:

(function($){ 

    $(document).ready(function()
    {
      formValidationSetup();
      refreshErrorMessages();
    });

    function formValidationSetup()
    {

    }

    function refreshErrorMessages()
    {

    }

})(jQuery);

The warnings:

  1. formValidationSetup is defined but never used
  2. refreshErrorMessages is defined but never used

I've tried setting undef to false in the JSHint options, but I'm still getting these errors. Is there another option I should be setting? Form the JSLint docs for undef:

true if variables and functions need not be declared before used. This is not available in strict mode.

Answer

Roland Puntaier picture Roland Puntaier · Sep 26, 2013

To avoid the warning

defined but never used

in jslint in your javascript add comments like:

 /*exported formValidationSetup, refreshErrorMessages */

In jshint and jslint you can set the unused option to false:

 /*jshint unused:false*/

See Options