web-dev-qa-db-fra.com

Déclaration de bloc inattendue autour du corps de la flèche

J'utilise "eslint-config-airbnb": "^6.1.0", pour garder mon JavaScript propre. 

Mon interlocuteur n'est pas satisfait de ce qui semble être un code légitime:

 enter image description here

Il semble que cela pourrait être un problème en cours . Quelqu'un a-t-il des suggestions pour un développeur d'OCD sur la manière de résoudre ce problème entre-temps? Peut-être désactiver cette règle ou autrement?

50
ilrein

L'instruction de bloc n'est pas nécessaire pour une seule expression.

this.state.todos.filter(filterTodo => filterTodo !== todo);
77
Kevin B

Pour ajouter à la réponse de Kevin, l'erreur est liée à votre configuration Eslint. Ceci dit, si l'option arrow-body-style est définie sur true, OP est correct. Un autre exemple serait quelque chose comme ceci:

    return this.state.greetings.map((name) => {
        return <HelloWorld key={name} name={name} />;
    });

Sans l'option arrow-body-style, l'instruction de bloc ({ return ...}) n'est pas nécessaire, comme indiqué dans la réponse de Kevin.

Cela pose en fait une nouvelle question sur le style le plus approprié.

Pour d'autres références: http://eslint.org/docs/rules/arrow-body-style

3
Pobe

Si vous ne voulez vraiment pas insérer la fonction de flèche dans une instruction de bloc, vous pouvez la désactiver.

module.exports = {
  extends: "airbnb-base",
  rules: {
    "arrow-body-style": 0
  },
  "env": {
    "jest": true
  }
};
0
Sagar Gavhane