eslint/no-with 正确性
它做了什么
禁止使用 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