Предотвратите предупреждение JSHint о том, что 'functionName определено, но никогда не используется'
Я только начал использовать JSHint (через пакет Sublime-Linter для Sublime Text 2). Я хотел бы подавить его предупреждения относительно функций, которые используются до их определения, поскольку я не вижу проблем с использованием определений функций, подобных этому. Например, следующий код генерирует предупреждения:
(function($){
$(document).ready(function()
{
formValidationSetup();
refreshErrorMessages();
});
function formValidationSetup()
{
}
function refreshErrorMessages()
{
}
})(jQuery);
Предупреждения:
- formValidationSetup определен, но никогда не используется
- refreshErrorMessages определен, но никогда не используется
Я попытался установить значение undef в false в параметрах JSHint, но я все еще получаю эти ошибки. Есть ли другой вариант, который я должен установить? Создайте JSLint docs для undef:
true, если перед использованием не нужно объявлять переменные и функции. Эта недоступен в строгом режиме.
Ответы
Ответ 1
Чтобы избежать предупреждения
определено, но никогда не используется
в jslint в javascript добавить комментарии вроде:
/*exported formValidationSetup, refreshErrorMessages */
В jshint и jslint вы можете установить для неиспользуемой опции значение false:
/*jshint unused:false*/
См. Options
Ответ 2
У меня была эта проблема с should
и expect
в тестах Chai. Я закончил с этим шаблоном:
'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);
});
});
});
Ответ 3
Интересно, что добавление 'use strict';
внутри IIFE подавляет ошибку. Не уверен, почему.
Ответ 4
Лучший способ не касаться 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
.
Ответ 5
Вы можете просто использовать
"unused": false,
в вашем .jshintrc
Ответ 6
Вы хотите использовать опцию 'latedef'