47

我刚刚开始使用 JSHint(通过 Sublime-Linter 包用于 Sublime Text 2)。我想禁止它对在定义之前使用的函数的警告,因为我认为使用这样的函数定义没有问题。例如,以下代码会生成警告:

(function($){ 

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

    function formValidationSetup()
    {

    }

    function refreshErrorMessages()
    {

    }

})(jQuery);

警告:

  1. formValidationSetup 已定义但从未使用过
  2. refreshErrorMessages 已定义但从未使用过

我尝试在 JSHint 选项中将undef设置为false ,但仍然出现这些错误。我应该设置另一个选项吗?形成undefJSLint 文档

如果变量和函数在使用前不需要声明,则为 true。这在严格模式下不可用。

4

6 回答 6

91

为了避免警告

已定义但从未使用

在您的 javascript 中的 jslint 中添加如下注释:

 /*exported formValidationSetup, refreshErrorMessages */

在 jshint 和 jslint 中,您可以将未使用的选项设置为 false:

 /*jshint unused:false*/

查看选项

于 2013-09-26T15:45:54.043 回答
9

我在 Chai 测试中should遇到了这个问题。expect我最终得到了这种模式:

'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);
    });
  });

});
于 2015-02-24T07:39:54.653 回答
5

你可以简单地使用

"unused": false,

在你的 .jshintrc

于 2015-03-19T14:47:43.627 回答
3

有趣的是,'use strict';在 IIFE 中添加会抑制错误。不知道为什么。

于 2012-09-26T20:26:25.067 回答
3

Gruntfile.js在典型的 Yoeman 设置中不接触 的更好方法是编辑.jshintrc文件(Unix 系统中的隐藏文件)。并更新内容如下:

{
  "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
}

设置"unused"false

于 2014-08-25T02:55:39.790 回答
-1

你会想要使用 'latedef' 选项

于 2013-03-05T20:13:12.820 回答