Запрет на использование глобальных переменных
Запретить использование определенных глобальных переменных может быть полезно, если вы хотите разрешить набор глобальных переменных, включив определённую среду, но при этом запретить некоторые из них.
Например, ранние версии Internet Explorer предоставляли текущее событие DOM как глобальную переменную event, но использование этой переменной давно считается плохой практикой. Ограничение использования этой переменной гарантирует, что она не будет использоваться в коде браузера.
Подробное описание правила
Это правило позволяет указать имена глобальных переменных, которые вы не хотите использовать в своем приложении.
Параметры
Это правило принимает список строк, где каждая строка — это глобальная переменная, которая должна быть ограничена:
{
"rules": {
"no-restricted-globals": ["error", "event", "fdescribe"]
}
}
В качестве альтернативы, правило также принимает объекты, где указывается имя глобальной переменной и необязательное пользовательское сообщение:
{
"rules": {
"no-restricted-globals": [
"error",
{
"name": "event",
"message": "Use local parameter instead."
},
{
"name": "fdescribe",
"message": "Do not commit fdescribe. Use describe instead."
}
]
}
}
Примеры неправильного кода для примера "event", "fdescribe" имен глобальных переменных:
/*global event, fdescribe*/
/*eslint no-restricted-globals: ["error", "event", "fdescribe"]*/
function onClick() {
console.log();
}
("foo", function() {
});
Примеры правильного кода для примера "event" имени глобальной переменной:
/*global event*/
/*eslint no-restricted-globals: ["error", "event"]*/
import event from "event-module";
/*global event*/
/*eslint no-restricted-globals: ["error", "event"]*/
var event = 1;
Примеры неправильного кода для примера "event" имени глобальной переменной, а также пользовательское сообщение об ошибке:
/*global event*/
/* eslint no-restricted-globals: ["error", { name: "event", message: "Use local parameter instead." }] */
function onClick() {
console.log(); // Unexpected global variable 'event'. Use local parameter instead.
}
Связанные правила
Версия
Это правило было введено в ESLint v2.3.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-restricted-globals