Подтвердить что ты не робот

Как сообщить JSHint игнорировать все переменные undefined в одном файле?

В тестах Karma существует множество глобальных переменных и функций, о которых жалуется JSHint (она интегрирована в мой редактор).

Как я могу сообщить JSHint игнорировать все переменные undefined в этом конкретном файле? Я бы ожидал, что /* jshint undef: false */ отключит это предупреждение, но это не так.

4b9b3361

Ответ 1

Правильный способ рассказать JSHint о глобальных значениях - использовать директиву globals. Например:

/*globals globalFunction, anotherGlobal, oneMore */

Это предотвратит предупреждение "{a} не определено", когда JSHint обнаруживает любой из перечисленных идентификаторов.

В качестве альтернативы, если вы действительно хотите игнорировать все "не определенные" предупреждения в этом файле, и вы используете JSHint 1.0.0 или выше, вы можете просто отключить это конкретное предупреждение:

/*jshint -W117 */

Ответ 2

В эту проблему включится, используя jshint сегодня днем. Это исправление работало для меня. Вместо использования "глобалов" попробуйте использовать "predef". Например:

{
  /*
   * RELAXING OPTIONS
   * =================
   */

  // Suppress warnings about == null comparisons.
  "eqnull": true,

  "predef" : ["describe", "expect", "it", "inject", "beforeEach", "angular"]
}

Ответ 3

Просто добавьте это правило в свой файл .jshintrc.

"-W117": true

Это игнорирует все предупреждения, которые говорят: '* не определено.'

Ответ 4

Я нашел, что использую jshint ignore:line как способ решения этой проблемы:

var unusedVar;//jshint ignore: строка

Это позволяет jshint продолжить свою полезную проверку для этого условия, но там, где есть явные причины игнорировать конкретное объявление, чем добавление этих двух адресов к проблеме, и делает это таким образом, который сразу становится очевидным для любого, кто смотрит на код.

Хорошим примером (по крайней мере для меня) является использование деструкции ES6 для незаконного набора ярлыков, которые вы можете или не можете использовать все время. В Ember я часто использую многие методы, которые отключаются от него, такие как typeOf и computed. Вместо того, чтобы всегда ссылаться на Ember.computed, гораздо лучше просто ссылаться на computed и иметь что-то вроде следующего в верхней части всех моих объектов Ember:

 const { computed, $, A, run, on, typeOf, debug, get, set } = Ember;    // jshint ignore:line