Eslint
规则 | Rules

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 中引入。

资源