eslint/arrow-body-style Style β
What it does β
This rule can enforce or disallow the use of braces around arrow function body.
Why is this bad? β
Arrow functions have two syntactic forms for their function bodies. They may be defined with a block body (denoted by curly braces) () => { ... } or with a single expression () => ..., whose value is implicitly returned.
Examples β
Examples of incorrect code for this rule with the always
option:
const foo = () => 0;
Examples of correct code for this rule with the always
option:
const foo = () => {
return 0;
};
Examples of incorrect code for this rule with the as-needed
option:
const foo = () => {
return 0;
};
Examples of correct code for this rule with the as-needed
option:
const foo1 = () => 0;
const foo2 = (retv, name) => {
retv[name] = true;
return retv;
};
Examples of incorrect code for this rule with the { "requireReturnForObjectLiteral": true } option:
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/
const foo = () => ({});
const bar = () => ({ bar: 0 });
Examples of correct code for this rule with the { "requireReturnForObjectLiteral": true } option:
/* arrow-body-style: ["error", "as-needed", { "requireReturnForObjectLiteral": true }]*/
const foo = () => {};
const bar = () => {
return { bar: 0 };
};
Examples of incorrect code for this rule with the never
option:
const foo = () => {
return 0;
};
Examples of correct code for this rule with the never
option:
const foo = () => 0;
const bar = () => ({ foo: 0 });
Options β
The rule takes one or two options. The first is a string, which can be:
always
enforces braces around the function bodynever
enforces no braces where they can be omitted (default)as-needed
enforces no braces around the function body (constrains arrow functions to the role of returning an expression)
The second one is an object for more fine-grained configuration when the first option is "as-needed". Currently, the only available option is requireReturnForObjectLiteral, a boolean property. Itβs false by default. If set to true, it requires braces and an explicit return for object literals.
{
"arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": true }]
}
How to use β
To enable this rule in the CLI or using the config file, you can use:
oxlint --deny arrow-body-style
{
"rules": {
"arrow-body-style": "error"
}
}