Eslint参考手册
规则 | Rules
no-native-reassign
此规则在 ESLint v3.3.0 中已弃用,并由 no-global-assign 规则取代。
JavaScript 环境包含许多内置的全局变量,例如window
在浏览器和process
Node.js 中。在几乎所有情况下,您都不想为这些全局变量赋值,因为这样做可能会导致无法访问重要的功能。例如,您可能不想在浏览器代码中执行此操作:
window = {};
虽然window
的例子很明显,但 JavaScript 环境经常提供数百个内置全局对象。很难知道你是否在分配一个全局变量。
规则细节
规则不允许修改只读全局变量。
ESLint有能力将全局变量配置为只读。
- 指定环境
- 指定全局
规则的错误代码示例:
/*eslint no-native-reassign: "error"*/
Object = null
undefined = 1
/*eslint no-native-reassign: "error"*/
/*eslint-env browser*/
window = {}
length = 1
top = 1
/*eslint no-native-reassign: "error"*/
/*globals a:false*/
a = 1
规则的正确代码示例:
/*eslint no-native-reassign: "error"*/
a = 1
var b = 1
b = 2
/*eslint no-native-reassign: "error"*/
/*eslint-env browser*/
onload = function() {}
/*eslint no-native-reassign: "error"*/
/*globals a:true*/
a = 1
选项
规则接受一个exceptions
选项,该选项可用于指定允许重新分配的内建列表:
{
"rules": {
"no-native-reassign": ["error", {"exceptions": ["Object"]}]
}
}
何时不使用它
如果您尝试覆盖其中一个本机对象。
相关规则
- no-extend-native
- no-redeclare
- no-shadow
版本
该规则在 ESLint 0.0.9中引入。
资源
- 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 |