Spec-Zone.ru › ESLint

no-undef

Запрещает использование не объявленных переменных, если они не упомянуты в /*global */ комментариях

✅ Рекомендуется

Использование recommended конфигурации из @eslint/js в файле конфигурации включает эту проверку.

Эта проверка помогает обнаружить потенциальные ошибки ReferenceError, вызванные неверным написанием имён переменных и параметров или случайными глобальными переменными (например, из-за забытия var ключевого слова в инициализаторе цикла for).

Подробное описание правила

Любая ссылка на не объявленную переменную вызывает предупреждение, если переменная явно не указана в /*global ...*/ комментарии или не указана в globals ключе конфигурационного файла. Это часто используется, если вы намеренно используете глобальные переменные, которые определены в другом месте (например, в скрипте, подгружаемом из HTML).

Примеры неправильного кода для этой проверки:

Открыть в Playground
/*eslint no-undef: "error"*/

var foo = someFunction();
var bar = a + 1;

Примеры правильного кода для этой проверки с global объявлением:

Открыть в Playground
/*global someFunction, a*/
/*eslint no-undef: "error"*/

var foo = someFunction();
var bar = a + 1;

Обратите внимание, что эта проверка не запрещает присваивания значения глобальным переменным, которые не изменяются. Обратитесь к no-global-assign, если вы также хотите запретить эти присваивания.

Эта проверка также не запрещает повторное объявление глобальных переменных. Обратитесь к no-redeclare, если вы также хотите запретить эти повторные объявления.

Параметры

  • typeof установленное в true предупредит о переменных, используемых внутри typeof проверки (по умолчанию false).

typeof

Примеры правильного кода для параметра { "typeof": false } по умолчанию:

Открыть в Playground
/*eslint no-undef: "error"*/

if (typeof UndefinedIdentifier === "undefined") {
    // do something ...
}

Вы можете использовать этот параметр, чтобы предотвратить проверку typeof на переменной, которая не была объявлена.

Примеры неправильного кода для параметра { "typeof": true }:

Открыть в Playground
/*eslint no-undef: ["error", { "typeof": true }] */

if(typeof a === "string"){}

Примеры правильного кода для параметра { "typeof": true } с global объявлением:

Открыть в Playground
/*global a*/
/*eslint no-undef: ["error", { "typeof": true }] */

if(typeof a === "string"){}

Когда не использовать

Если явное объявление глобальных переменных не подходит для вашего стиля.

Совместимость

Эта проверка совместима с обработкой глобальных переменных в JSHint и JSLint.

Обработка TypeScript

Безопасно отключить эту проверку при использовании TypeScript, так как компилятор TypeScript выполняет эту проверку.

Связанные правила

  • no-global-assign
  • no-redeclare

Версия

Это правило было добавлено в ESLint v0.0.9.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-undef

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API