no-restricted-globals
禁止使用特定的全局变量(不受限制的全局变量)
如果您希望通过启用环境来允许一组全局变量,但仍想禁止某些全局变量,则不允许使用特定全局变量。
例如,早期的 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(event
}
fdescribe("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: "error", message: "Use local parameter instead." }] */
function onClick() {
console.log(event // Unexpected global variable 'event'. Use local parameter instead.
}
相关规则
- no-restricted-properties
- no-restricted-syntax
版本
该规则在 ESLint 2.3.0 中引入。