Skip to content
← Back to rules

eslint/no-cond-assign 正确性

This rule is turned on by default.

它的作用

禁止在条件表达式中使用赋值运算符

为什么这是不好的?

在条件语句中,很容易将比较运算符(例如 ==)误写为赋值运算符(例如 =)。

虽然在条件语句中使用赋值运算符有其合理的原因,但很难判断某个特定的赋值是否是故意的。

示例

此规则的 错误 代码示例:

js
// 检查用户的职位标题
if ((user.jobTitle = "manager")) {
  // user.jobTitle 现在已错误
}

此规则的 正确 代码示例:

js
// 检查用户的职位标题
if (user.jobTitle === "manager") {
  // 正确地比较了 `jobTitle`
}

配置

此规则接受以下字符串值之一:

"except-parens"

仅当赋值表达式被括号包围时,才允许在条件表达式中使用赋值。

"always"

禁止在条件表达式中使用所有赋值。

如何使用

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

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

参考资料