Есть ли способ подавить предупреждение JSHint для одной заданной строки?


У меня есть (один) случай в моем приложении eval используется, и я хотел бы подавить предупреждение JSHint только для этого случая.

есть ли способ достичь этого? Конфигурация, волшебный комментарий, ...?

3 239

3 ответа:

Да, есть способ. Точнее, два. В октябрь 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

"злой" ответ не работа для меня. Вместо этого я использовал то, что было рекомендовано на JSHints документы-страницы. Если вы знаете предупреждение, которое выдается, вы можете отключить его для блока кода. Например, я использую какой-то сторонний код, который не использует функции Camel case, но мои правила JSHint требуют этого, что привело к предупреждению. Чтобы заставить его замолчать, я написал:

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

Как вы можете видеть в разделе документация JSHint вы можете изменить параметры в функции или в файле. В вашем случае просто поместите комментарий в свой файл или даже более локальный только в функции, которая использует eval:

/*jshint evil:true */

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