防止JSHint警告'functionName被定义但从未使用'

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

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

警告:

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

我试过在JSHint选项中设置undeffalse ,但我仍然收到这些错误。 我应该设置另一个选项吗? 为undef 构buildJSLint文档 :

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

6 Solutions collect form web for “防止JSHint警告'functionName被定义但从未使用'”

为了避免这个警告

定义但从未使用

在jslint中你的javascript添加评论如:

  /*exported formValidationSetup, refreshErrorMessages */ 

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

  /*jshint unused:false*/ 

请参阅选项

我有这个问题should在柴testingexpect 。 我结束了这种模式:

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

有趣的是,加上'use strict'; 在IIFE内部抑制错误。 不知道为什么。

在典型的Yoeman设置中,不要触及Gruntfile.js更好方法是编辑.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

你可以简单地使用

 "unused": false, 

在你的.jshintrc

你会想使用'latedef'选项

  • 有没有工作的JSLint Eclipse插件?
  • 不要使循环内的函数
  • 处理循环variables的重复声明警告
  • var x = new Array()有什么问题;
  • JSLint错误:“将调用移入包含函数的元素”
  • JSlint错误“不要在循环中创build函数”。 导致关于Javascript本身的问题
  • 检查全局variables是否存在的正确方法是什么?
  • 什么是JSLint错误“一个for的内容应包裹在一个if语句”是什么意思?
  • JSLint:控制注释(select性忽略)
  • JSlint:意外'for'
  • 如何获得“should.be.false”语法通过jslint?