with
statements (no-with)The "extends": "eslint:recommended"
property in a configuration file enables this rule.
The with
statement is potentially problematic because it adds members of an object to the current scope, making it impossible to tell what a variable inside the block actually refers to.
This rule disallows with
statements.
If ESLint parses code in strict mode, the parser (instead of this rule) reports the error.
Examples of incorrect code for this rule:
/*eslint no-with: "error"*/
with (point) {
r = Math.sqrt(x * x + y * y); // is r a member of point?
}
Examples of correct code for this rule:
/*eslint no-with: "error"*/
/*eslint-env es6*/
const r = ({x, y}) => Math.sqrt(x * x + y * y);
If you intentionally use with
statements then you can disable this rule.
This rule was introduced in ESLint 0.0.2.
© JS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/rules/no-with