no-global-assign
Запрещает присваивания встроенным объектам или глобальным переменным только для чтения
Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило
Среды JavaScript содержат ряд встроенных глобальных переменных, например window в браузерах и process в Node.js. Почти во всех случаях не следует присваивать значения этим глобальным переменным, поскольку это может привести к потере доступа к важным возможностям. Например, в коде для браузера, вероятно, не следует делать так:
window = {};
Хотя такие примеры, как window, очевидны, среды JavaScript предоставляют сотни встроенных глобальных объектов. Может быть трудно понять, присваиваете ли вы значение глобальной переменной.
Подробности правила
Это правило запрещает изменять глобальные переменные только для чтения.
ESLint позволяет настраивать глобальные переменные как переменные только для чтения.
См. также: Указание глобальных переменных
Примеры неправильного кода для этого правила:
/*eslint no-global-assign: "error"*/
= null
= 1
/*eslint no-global-assign: "error"*/
/*global window:readonly*/
= {}
Примеры правильного кода для этого правила:
/*eslint no-global-assign: "error"*/
a = 1
let b = 1
b = 2
/*eslint no-global-assign: "error"*/
/*global onload:writable*/
onload = function() {}
Параметры
Это правило принимает параметр exceptions, с помощью которого можно указать список встроенных объектов, для которых разрешены повторные присваивания:
{
"rules": {
"no-global-assign": ["error", {"exceptions": ["Object"]}]
}
}
Когда не следует использовать это правило
Если вы пытаетесь переопределить один из встроенных объектов.
Связанные правила
Версия
Это правило появилось в ESLint v3.3.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-global-assign