Prevent JSHint warning that 'functionName is d

2019-01-22 01:28发布

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.

6条回答
放荡不羁爱自由
2楼-- · 2019-01-22 01:45

You can simply use

"unused": false,

in your .jshintrc

查看更多
小情绪 Triste *
3楼-- · 2019-01-22 01:45

Interestingly, adding 'use strict'; inside the IIFE suppresses the error. Not sure why though.

查看更多
Viruses.
4楼-- · 2019-01-22 01:47

A better way not touching the Gruntfile.js in a typical Yoeman setup is to edit the .jshintrc file (a hidden file in Unix system). And update the content as the following:

{
  "curly": true,
  "eqeqeq": true,
  "immed": true,
  "latedef": true,
  "newcap": true,
  "noarg": true,
  "sub": true,
  "undef": true,
  "unused": false, // the change is here
  "boss": true,
  "eqnull": true,
  "node": true
}

set the "unused" to false.

查看更多
兄弟一词,经得起流年.
5楼-- · 2019-01-22 01:49

You'll want to use the 'latedef' option

查看更多
家丑人穷心不美
6楼-- · 2019-01-22 01:52

I had this problem with should and expect in Chai tests. I ended up with this pattern:

'use strict';

var request = require('supertest');
var should = require('chai').should();  // jshint ignore:line
var expect = require('chai').expect;    // jshint ignore:line

process.env.NODE_ENV = 'test';
var appPromise = require('./index');

describe('GET /r_u_up', function() {

  it('respond with 204', function(done) {
    appPromise.then(function(app) {
      request(app)
      .get('/r_u_up')
      .expect(204, done);
    });
  });

});
查看更多
来,给爷笑一个
7楼-- · 2019-01-22 01:59

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

查看更多
登录 后发表回答