Spec-Zone.ru › ESLint

no-global-assign

Запрещает присваивания к встроенным объектам или глобальным переменным с только для чтения

✅ Рекомендуемое

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

Среды JavaScript содержат ряд встроенных глобальных переменных, таких как window в браузерах и process в Node.js. В большинстве случаев не следует присваивать значения этим глобальным переменным, так как это может привести к потере доступа к важным функциям. Например, в коде браузера этого делать не нужно:

window = {};

Хотя примеры, такие как window очевидны, часто в JavaScript-средах предоставляется сотни встроенных глобальных объектов. Сложно определить, происходит ли присваивание глобальной переменной.

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

Это правило запрещает изменения глобальных переменных с только для чтения.

ESLint позволяет настроить глобальные переменные как с только для чтения.

  • Указание сред
  • Указание глобальных переменных

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

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

Object = null
undefined = 1
Открыть в Playground
/*eslint no-global-assign: "error"*/
/*global window:readonly*/

window = {}

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

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

a = 1
var b = 1
b = 2
Открыть в Playground
/*eslint no-global-assign: "error"*/
/*global onload:writable*/

onload = function() {}

Параметры

Это правило принимает параметр exceptions, который может использоваться для указания списка встроенных элементов, для которых разрешены повторные присваивания:

{
    "rules": {
        "no-global-assign": ["error", {"exceptions": ["Object"]}]
    }
}

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

Если вы пытаетесь перезаписать один из встроенных объектов.

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

  • no-extend-native
  • no-redeclare
  • no-shadow

Версия

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

Ресурсы

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

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

Spec-Zone.ru

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