web-dev-qa-db-ja.com

「functionNameは定義されているが使用されていない」というJSHint警告を防止

JSHintの使用を開始しました(Sublime Text 2のSublime-Linterパッケージを使用)。このような関数定義を使用しても問題はないので、定義される前に使用される関数に関する警告を抑制したいと思います。たとえば、次のコードは警告を生成します。

(function($){ 

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

    function formValidationSetup()
    {

    }

    function refreshErrorMessages()
    {

    }

})(jQuery);

警告:

  1. formValidationSetupは定義されていますが、使用されることはありません
  2. refreshErrorMessagesは定義されていますが、使用されません

JSHintオプションでundeffalseに設定しようとしましたが、まだこれらのエラーが発生しています。設定する必要がある別のオプションはありますか? JSLint docs forundefを作成します:

変数と関数を使用する前に宣言する必要がない場合はtrueこれは、厳密モードでは使用できません。

45
Undistraction

警告を回避するには

定義済みだが使用されていない

javaScriptのjslintで次のようなコメントを追加します。

 /*exported formValidationSetup, refreshErrorMessages */

Jshintおよびjslintでは、未使用オプションをfalseに設定できます。

 /*jshint unused:false*/

オプション を参照してください

90
Roland Puntaier

Chaiテストでshouldexpectでこの問題が発生しました。私はこのパターンになりました:

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

});
9
Michael Cole

単純に使用できます

"unused": false,

.jshintrcで

典型的な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に設定します。

3
xptest18

興味深いことに、'use strict';は、IIFE内でエラーを抑制します。理由はわかりませんが。

2
Undistraction