eslint/arrow-body-style 风格
它的作用
此规则可强制或禁止在箭头函数体周围使用大括号。 箭头函数可以使用以下任一种形式:
- 块体
() => { ... } - 或简洁体
() => expression,具有隐式返回。
为什么这是个问题?
块体与简洁体的不一致使用会使代码更难阅读。 简洁体仅限于单个表达式,其值会被隐式返回。
选项
第一个选项:
- 类型:
string - 枚举值:
"always"、"as-needed"、"never" - 默认值:
"as-needed"
可能的取值:
never强制函数体周围不使用大括号(将箭头函数限制为仅返回一个表达式)always强制函数体周围使用大括号as-needed在可以省略大括号时强制不使用大括号(默认)
第二个选项:
- 类型:
object - 属性:
requireReturnForObjectLiteral:boolean(默认:false)——对于对象字面量要求使用大括号和显式return
注意:此选项仅在第一个选项为 "as-needed" 时生效。
示例配置:
json
{
"arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": true }]
}示例
"never"
使用 never 选项时,此规则的错误代码示例:
js
/* arrow-body-style: ["error", "never"] */
/* ✘ 错误: */
const foo = () => {
return 0;
};使用 never 选项时,此规则的正确代码示例:
js
/* arrow-body-style: ["error", "never"] */
/* ✔ 正确: */
const foo = () => 0;
const bar = () => ({ foo: 0 });"always"
使用 always 选项时,此规则的错误代码示例:
js
/* arrow-body-style: ["error", "always"] */
/* ✘ 错误: */
const foo = () => 0;使用 always 选项时,此规则的正确代码示例:
js
/* arrow-body-style: ["error", "always"] */
/* ✔ 正确: */
const foo = () => {
return 0;
};"as-needed"(默认)
使用 as-needed 选项时,此规则的错误代码示例:
js
/* arrow-body-style: ["error", "as-needed"] */
/* ✘ 错误: */
const foo = () => {
return 0;
};使用 as-needed 选项时,此规则的正确代码示例:
js
/* arrow-body-style: ["error", "as-needed"] */
/* ✔ 正确: */
const foo1 = () => 0;
const foo2 = (retv, name) => {
retv[name] = true;
return retv;
};
const foo3 = () => {
bar();
};"as-needed" 配合 requireReturnForObjectLiteral
使用 { "requireReturnForObjectLiteral": true } 选项时,此规则的错误代码示例:
js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */
/* ✘ 错误: */
const foo = () => ({});
const bar = () => ({ bar: 0 });使用 { "requireReturnForObjectLiteral": true } 选项时,此规则的正确代码示例:
js
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }] */
/* ✔ 正确: */
const foo = () => {};
const bar = () => {
return { bar: 0 };
};配置
第一个选项
类型:"as-needed" | "always" | "never"
第二个选项
此选项是一个包含以下属性的对象:
requireReturnForObjectLiteral
类型:boolean
默认值:false
如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"arrow-body-style": "error"
}
}bash
oxlint --deny arrow-body-style