react/jsx-boolean-value 风格
它的作用
在代码中强制统一布尔属性的书写风格。
为什么这是个问题?
在 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