Чи є спосіб придушити попередження JSHint для одного заданого рядка?


264

У моєму додатку було evalвикористано (окремий) випадок , і я хотів би придушити попередження JSHint лише для цього випадку.

Чи є спосіб досягти цього? Конфігурація, магічний коментар, ...?

Відповіді:


465

Так, спосіб є. Два насправді. У жовтні 2013 року jshint додав спосіб ігнорувати блоки коду на зразок цього:

// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
// Code here will be linted with JSHint.

Ви також можете проігнорувати один рядок із таким коментарем, як цей:

ignoreThis(); // jshint ignore:line

Для тих, хто намагається змусити JSHint Sublime Text 2/3 плагіни працювати, вам потрібно буде оновити jshint спеціально в папці пакета ST. (Я спеціально наткнувся на це з JSHint Gutter)
Джош

7
Чи можна ігнорувати лише конкретну помилку? напр. Макслен на цій конкретній лінії все ще виявляє інші помилки.
Юрген Пол

4
подякувати добру за // jshint ignore:line- чудово працює з;(function() { // jshint ignore:line
katy lavallee

4
Опція "ігнорувати" застаріла, і я отримую помилку "поганий варіант", використовуючи версію 0.9.9 функції JSHint Integration в затемненні. Чи є альтернативний спосіб зробити те ж саме?
ОпівночіJava

2
Я обійшов bad option: 'ignore', використовуючи певний варіант для рядка, який я хочу проігнорувати. У моєму випадку я хотів ігнорувати, if (x == null)тому що я хочу, щоб він дорівнював більше, ніж просто нульовому, і використовувався /* jshint eqnull:true */в тій же функції, що і ifдля мовчання JSHint.
Нейт

102

Відповідь "зла" для мене не спрацювала. Натомість я використав те, що було рекомендовано на JSHints документів . Якщо вам відомо попередження, яке викидається, ви можете вимкнути його для блоку коду. Наприклад, я використовую код третьої сторони, який не використовує функції корпусу верблюда, але мої правила JSHint вимагають цього, що призвело до попередження. Щоб замовкнути це, я написав:

/*jshint -W106 */
save_state(id);
/*jshint +W106 */

15
І як я визначити свій номер попередження?
11684

3
Коли ви запустите jshint і отримаєте помилку спочатку, про номер буде повідомлено.
tollmanz

5
Ой, вибачте. Я забув, що залишив коментар, тому не опублікував щось після того, як перевірив документи. Це не так, вам потрібно додати --verboseдо команди, щоб отримати номер попередження.
11684

9
Як варіант, відповідь на це пов'язане питання пропонує перевірити messages.js . Я вважаю це досить корисним, оскільки використовую WebStorm.
Майкл Джес

3
Усі номери попереджень, помилок та інформації можна знайти тут: github.com/jshint/jshint/blob/master/src/messages.js
Anderson Arboleya

37

Як ви бачите в документації JSHint, ви можете змінювати параметри для функції або для кожного файлу . У вашому випадку просто помістіть коментар у свій файл або навіть більше локальний лише у функції, яка використовує eval:

/*jshint evil:true */

function helloEval(str) {
    /*jshint evil:true */
    eval(str);
}

fwiw, це не спрацювало для мене з 2.1.9, але працювало після оновлення до 2.1.11
кенгук
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.