disallow with
statements (no-with)
禁用 with
语句 (no-with)
The "extends": "eslint:recommended"
property in a configuration file enables this rule.
配置文件中的 "extends": "eslint:recommended"
属性启用了此规则。
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.
with
是潜在的问题,因为它会在当前的域中增加对象成员,使得区分实际块中的变量指的是什么变的不可能。
Rule Details
This rule disallows with
statements.
此规则目的在于排除 with
语句。
If ESLint parses code in strict mode, the parser (instead of this rule) reports the error.
如果 ESLint 在严格模式下解析代码,解析器(不是该规则)将报告这样的错误。
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);
When Not To Use It
If you intentionally use with
statements then you can disable this rule.
如果你有意要使用 with
语句,可以禁用此规则。
Further Reading
Version
This rule was introduced in ESLint 0.0.2.
该规则在 ESLint 0.0.2 中被引入。