The "extends": "eslint:recommended"
property in a configuration file enables this rule.
JavaScript environments contain a number of built-in global variables, such as window
in browsers and process
in Node.js. In almost all cases, you don’t want to assign a value to these global variables as doing so could result in losing access to important functionality. For example, you probably don’t want to do this in browser code:
window = {};
While examples such as window
are obvious, there are often hundreds of built-in global objects provided by JavaScript environments. It can be hard to know if you’re assigning to a global variable or not.
This rule disallows modifications to read-only global variables.
ESLint has the capability to configure global variables as read-only.
Examples of incorrect code for this rule:
/*eslint no-global-assign: "error"*/ Object = null undefined = 1
/*eslint no-global-assign: "error"*/ /*eslint-env browser*/ window = {} length = 1 top = 1
/*eslint no-global-assign: "error"*/ /*globals a:false*/ a = 1
Examples of correct code for this rule:
/*eslint no-global-assign: "error"*/ a = 1 var b = 1 b = 2
/*eslint no-global-assign: "error"*/ /*eslint-env browser*/ onload = function() {}
/*eslint no-global-assign: "error"*/ /*globals a:true*/ a = 1
This rule accepts an exceptions
option, which can be used to specify a list of builtins for which reassignments will be allowed:
{ "rules": { "no-global-assign": ["error", {"exceptions": ["Object"]}] } }
If you are trying to override one of the native objects.
This rule was introduced in ESLint 3.3.0.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-global-assign