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
let 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