Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
ajhyndman committed Jun 7, 2016
1 parent f862809 commit c99d96b
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion docs/rules/arrow-body-style.md
Expand Up @@ -4,14 +4,17 @@ Arrow functions can omit braces when there is a single statement in the body. Th

## Rule Details

This rule can enforce the use of braces around arrow function body.
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.

This rule may be used to standardize your usage and thus avoid syntactic ambiguity.

## Options

The rule takes one option, a string, which can be:

* `"always"` enforces braces around the function body
* `"as-needed"` enforces no braces where they can be omitted (default)
* `"never"` enforces no braces around the function body (constrains arrow functions to the role of returning an expression)

### "always"

Expand Down Expand Up @@ -84,3 +87,30 @@ let foo = () => {
// do nothing.
};
```

### "never"

When the rule is set to `"never"` the following patterns are considered problems:

```js
/*eslint arrow-body-style: ["error", "never"]*/
/*eslint-env es6*/

let foo = () => {
return 0;
};
let foo = (retv, name) => {
retv[name] = true;
return retv;
};
```

The following patterns are not considered problems:

```js
/*eslint arrow-body-style: ["error", "as-needed"]*/
/*eslint-env es6*/

let foo = () => 0;
let foo = () => ({ foo: 0 });
```

0 comments on commit c99d96b

Please sign in to comment.