首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

no-redeclare

"extends": "eslint:recommended"配置文件中的属性启用此规则。

在 JavaScript 中,可以使用重新声明相同的变量名称var。这可能会导致混淆变量实际声明和初始化的位置。

规则细节

这个规则旨在消除在同一范围内具有多个声明的变量。

这个规则的错误代码示例:

代码语言:javascript
复制
/*eslint no-redeclare: "error"*/

var a = 3;
var a = 10;

此规则的正确代码示例:

代码语言:javascript
复制
/*eslint no-redeclare: "error"*/

var a = 3;
// ...
a = 10;

选项

该规则采用一个可选参数,一个具有布尔属性的对象"builtinGlobals"。它默认为false。如果设置为true,该规则还检查内置全局变量,如重新声明ObjectArrayNumber...

builtinGlobals

"builtinGlobals"选项将检查全局范围内的内置全局变量的重新声明。

选项的错误代码示例{ "builtinGlobals": true }

代码语言:javascript
复制
/*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/

var Object = 0;

选项和环境的错误代码示例:{ "builtinGlobals": true }browser

代码语言:javascript
复制
/*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
/*eslint-env browser*/

var top = 0;

browser环境有很多内置的全局变量(例如,top)。一些内置的全局变量不能重新声明。

请注意,在使用nodeor commonjs环境时(或者ecmaFeatures.globalReturn,如果使用默认解析器),程序的顶部范围实际上不是全局范围,而是“模块”范围。在这种情况下,声明一个以内置全局变量命名的变量不是重新声明,而是全局变量的阴影。在这种情况下,应该使用no-shadow带有该"builtinGlobals"选项的规则。

相关规则

  • no-shadowVersionThis rule was introduced in ESLint 0.0.9.Resources

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com