Eslint参考手册
规则 | Rules
no-redeclare
"extends": "eslint:recommended"
配置文件中的属性启用此规则。
在 JavaScript 中,可以使用重新声明相同的变量名称var
。这可能会导致混淆变量实际声明和初始化的位置。
规则细节
这个规则旨在消除在同一范围内具有多个声明的变量。
这个规则的错误代码示例:
/*eslint no-redeclare: "error"*/
var a = 3;
var a = 10;
此规则的正确代码示例:
/*eslint no-redeclare: "error"*/
var a = 3;
// ...
a = 10;
选项
该规则采用一个可选参数,一个具有布尔属性的对象"builtinGlobals"
。它默认为false
。如果设置为true
,该规则还检查内置全局变量,如重新声明Object
,Array
,Number
...
builtinGlobals
"builtinGlobals"
选项将检查全局范围内的内置全局变量的重新声明。
选项的错误代码示例{ "builtinGlobals": true }
:
/*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
var Object = 0;
选项和环境的错误代码示例:{ "builtinGlobals": true }browser
/*eslint no-redeclare: ["error", { "builtinGlobals": true }]*/
/*eslint-env browser*/
var top = 0;
该browser
环境有很多内置的全局变量(例如,top
)。一些内置的全局变量不能重新声明。
请注意,在使用node
or commonjs
环境时(或者ecmaFeatures.globalReturn
,如果使用默认解析器),程序的顶部范围实际上不是全局范围,而是“模块”范围。在这种情况下,声明一个以内置全局变量命名的变量不是重新声明,而是全局变量的阴影。在这种情况下,应该使用no-shadow
带有该"builtinGlobals"
选项的规则。
相关规则
- no-shadowVersionThis rule was introduced in ESLint 0.0.9.Resources
- Rule source
- Documentation source
规则 | Rules相关

ESLint 是一个代码规范和错误检查工具,有以下几个特性。所有东西都是可以插拔的。你可以调用任意的 rule api 或者 formatter api 去打包或者定义 rule or formatter。任意的 rule 都是独立的。没有特定的 coding style,你可以自己配置。
主页 | https://eslint.org/ |
源码 | https://github.com/eslint/eslint |
发布版本 | 4.12.0 |