Skip to content

noYodaExpression

¥Summary

¥How to configure

biome.json
{
"linter": {
"rules": {
"style": {
"noYodaExpression": "error"
}
}
}
}

¥Description

禁止使用 yoda 表达式。

¥Disallow the use of yoda expressions.

Yoda 表达式是一种编程风格,其中给定一个二进制运算,二进制运算的 “static” 部分放在左侧。此规则禁止使用 Yoda 表达式,并强制将二元运算的 “static” 部分放在右侧。

¥A Yoda expression is a programming style where, given a binary operation, the “static” part of the binary operation is placed on the left-hand side. This rule forbids the use of Yoda expressions and enforces the placing of the “static” part of the binary operations on the right-hand side.

¥Exceptions

允许使用像 0 < value && value < 1 或 value <= 0 || 1 < value 这样的范围表达式。

¥Range expressions like 0 < value && value < 1 or value <= 0 || 1 < value are allowed.

¥Examples

¥Invalid

if ("red" == value) {}
code-block.js:1:5 lint/style/noYodaExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ Avoid the use of yoda expressions.

> 1 │ if (“red” == value) {}
│ ^^^^^^^^^^^^^^
2 │

ℹ Yoda expressions can be confusing to some people, invert the expression operands for better readability.

ℹ Safe fix: Flip the operators of the expression.

1 │ - if·(“red”·==·value)·{}
1 │ + if·(value·==·“red”)·{}
2 2 │

if (true === value) {}
code-block.js:1:5 lint/style/noYodaExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ Avoid the use of yoda expressions.

> 1 │ if (true === value) {}
│ ^^^^^^^^^^^^^^
2 │

ℹ Yoda expressions can be confusing to some people, invert the expression operands for better readability.

ℹ Safe fix: Flip the operators of the expression.

1 │ - if·(true·===·value)·{}
1 │ + if·(value·===·true)·{}
2 2 │

if (5 != value) {}
code-block.js:1:5 lint/style/noYodaExpression  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ Avoid the use of yoda expressions.

> 1 │ if (5 != value) {}
│ ^^^^^^^^^^
2 │

ℹ Yoda expressions can be confusing to some people, invert the expression operands for better readability.

ℹ Safe fix: Flip the operators of the expression.

1 │ - if·(5·!=·value)·{}
1 │ + if·(value·!=·5)·{}
2 2 │

¥Valid

if (value === "red") {}
if (value === value) {}
if (value != 5) {}
if (0 < value && value < 1) {}

¥Resources

¥Related links