Ответ 1
Официальная документация должна дать вам представление о том, как исправить это.
Самое простое исправление - добавить
/* global _ */
в верхней части файла.
Но так как вам нужно будет сделать это для каждого нового js файла, это может вызвать раздражение. Если вы часто используете подчеркивание, я предлагаю вам добавить глобалы в ваш .eslintrc
файл, например:
{
"globals": {
"_": false
}
}
И сохраните это как .eslintrc
в корне вашего проекта или, возможно, в домашнем каталоге пользователя. Хотя некоторые говорят, что последнее не рекомендуется, иногда это может быть удобно, но вы должны помнить, что вы его там:)
Объяснение приведенного выше правила: "_": false
означает, что переменная с именем _
сообщает eslint, что эта переменная определена глобально, и она не будет вызывать ошибки no-undef
для этой переменной. Как отметил @sebastian, false
означает, что переменная не может быть перезаписана, поэтому код _ = 'something else'
приведет к ошибке no-global-assign
. Если бы вы вместо этого использовали "_": true
(это был мой предыдущий ответ), это означает, что значение может быть повторно назначено, и упомянутая выше ошибка не будет возникать.
Но имейте в виду, что это произойдет, только если вы назначаете напрямую глобальную переменную, как показано в примере. Вы все еще можете тень, и эслинт ничего не скажет. Например, эти фрагменты не дают no-global-assign
:
const _ = 'haha I broke your _'
или как имя аргумента функции, например.
function (_) {
console.log(_, 'might not be the _ you were looking for')
}