Versions

no-with

Disallow with statements

Recommended

The "extends": "eslint:recommended" property in a configuration file enables this rule

with 语句存在潜在问题,因为它将一个对象的成员加入到当前的作用域中,使得我们无法分辨块中的变量究竟指的是什么。

规则细节

使用此规则禁用 with 语句。

如果 ESLint 以严格模式解析代码,解析器(而不是本规则)会报告错误。

使用此规则的错误示例:

Open in Playground
/*eslint no-with: "error"*/

with (point) {
    r = Math.sqrt(x * x + y * y); // is r a member of point?
}

使用此规则的正确示例:

Open in Playground
/*eslint no-with: "error"*/
/*eslint-env es6*/

const r = ({x, y}) => Math.sqrt(x * x + y * y);

何时不用

如果你故意使用 with 语句,那么你可以禁用这个规则。

Version

This rule was introduced in ESLint v0.0.2.

Further Reading

Resources

更改语言