disallow with statements (no-with)

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.

Rule Details

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);

When Not To Use It

If you intentionally use with statements then you can disable this rule.

Further Reading

Version

This rule was introduced in ESLint 0.0.2.

Resources

关注前端布道师,专注分享前端最新技术、大厂面试题、聊点程序员轶事、职场感情,做前端技术的传播者.

关注 前端布道师

热爱前端开发,专注分享前端最新技术、大厂面试题、聊点程序员轶事、职场感悟,做前端技术的传播者

LeetCode题解 | 每日一题