Skip to content
← Back to rules

react/jsx-boolean-value 风格

An auto-fix is available for this rule.

它的作用

在代码中强制统一布尔属性的书写风格。

为什么这是个问题?

在 JSX 中,你可以将布尔属性设为 true,或直接省略它。 此规则会强制对布尔属性采用一致的风格。

示例

以下是在默认 "never" 模式下的 错误 代码示例:

jsx
const Hello = <Hello personal={true} />;

以下是在默认 "never" 模式下的 正确 代码示例:

jsx
const Hello = <Hello personal />;

const Foo = <Foo isSomething={false} />;

以下是在 "always" 模式下的 错误 代码示例:

jsx
const Hello = <Hello personal />;

以下是在 "always" 模式下的 正确 代码示例:

jsx
const Hello = <Hello personal={true} />;

配置

第一个选项

类型:"always" | "never"

"always"

所有布尔属性都必须显式指定值。

"never"

所有布尔属性都必须省略其值(当值为 true 时)。

第二个选项

该选项是一个包含以下属性的对象:

always

类型:string[]

默认值:[]

应始终具有显式布尔值的属性名称列表。 仅在主模式为 "never" 时才需要。

assumeUndefinedIsFalse

类型:boolean

默认值:false

如果为 true,则将 prop={false} 视为等同于属性为 undefined。 当与 "never" 模式结合使用时,这将强制属性完全被省略。

jsx
// 当 "assumeUndefinedIsFalse": true 时
<App foo={false} />; // 错误
<App />; // 正确

此选项在 "always" 模式下无效。

never

类型:string[]

默认值:[]

不应具有显式布尔值的属性名称列表。 仅在主模式为 "always" 时才需要。

如何使用

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

json
{
  "plugins": ["react"],
  "rules": {
    "react/jsx-boolean-value": "error"
  }
}
bash
oxlint --deny react/jsx-boolean-value --react-plugin

参考资料