Skip to content
← Back to rules

eslint/no-with 正确性

This rule is turned on by default.

它做了什么

禁止使用 with 语句。

为什么这是个问题?

with 语句可能存在潜在问题,因为它会将对象的成员添加到当前作用域中,导致无法确定块内的变量实际指向哪个对象。

通常认为这是一种不良实践,并且在严格模式下被禁止。

如果启用了 alwaysStrict,在 TypeScript 代码中此规则并不必要。

示例

此规则的错误代码示例:

javascript
with (point) {
  r = Math.sqrt(x * x + y * y); // r 是 point 的成员吗?
}

如何使用

通过配置文件或 CLI 启用此规则,可以使用以下方式:

json
{
  "rules": {
    "no-with": "error"
  }
}
bash
oxlint --deny no-with

参考资料