web-dev-qa-db-fra.com

Comment désactiver @ TypeScript-eslint / explicit-function-return-type pour some (), filter (), forEach ()?

Comment désactiver @TypeScript-eslint/explicit-function-return-type pour some(), filter(), forEach()?

Il est très ennuyeux de déclarer à chaque fois un boolean type de retour pour some() et filter() et void pour forEach().

Invalide

[2, 5, 8, 1, 4].some(elem => elem > 10)

Valide

[2, 5, 8, 1, 4].some((elem):boolean => elem > 10)

Je veux pouvoir utiliser le premier modèle (marqué "invalide") sans obtenir d'erreurs de cette règle.

9
Grzegorzg

Dans votre .eslintrc fichier, vous pouvez ajouter les éléments suivants sous rules:

{
  ...
  "plugins": ["@TypeScript-eslint"],
  "rules": {
    ...
    "@TypeScript-eslint/explicit-function-return-type": {
      "allowExpressions": true
    }
  }
}

Selon la documentation sur allowExpressions , cela vous permettrait de fournir des rappels en ligne à n'importe quelle fonction sans déclarer de types de retour explicites.

7
Patrick Roberts

C'est ainsi .eslintrc doit être configuré pour la règle @TypeScript-eslint/explicit-function-return-type

{
  "@TypeScript-eslint/explicit-function-return-type": "off",
  "overrides": [
    {
      "files": ["*.ts", "*.tsx"],
      "parser": "@TypeScript-eslint/parser",
      ...
      "rules": {
        ...
        "@TypeScript-eslint/explicit-function-return-type": [
          "error",
          {
            "allowExpressions": true
          }
        ]
      }
    }
  ]
}

Exemples de code correct pour cette règle avec {allowExpressions: true}:

node.addEventListener('click', () => {});

node.addEventListener('click', function() {});

const foo = arr.map(i => i * i);

Pour plus d'informations, consultez la documentation de allowExpressions .

1
locropulenton