3.1 KiB
3.1 KiB
Configuration stricte TypeScript et ESLint
Règles TypeScript strictes (tsconfig.json)
Activées :
- ✅
strict: true- Mode strict complet - ✅
noUnusedLocals: true- Variables locales non utilisées = erreur - ✅
noUnusedParameters: true- Paramètres non utilisés = erreur - ✅
noImplicitReturns: true- Return explicite requis - ✅
noFallthroughCasesInSwitch: true- Pas de fallthrough dans switch - ✅
noUncheckedIndexedAccess: true- Accès aux tableaux/objets vérifiés - ✅
noImplicitOverride: true- Override explicite requis - ✅
exactOptionalPropertyTypes: true- Types optionnels exacts
Règles ESLint strictes (.eslintrc.json)
TypeScript avec informations de type :
- ✅
@typescript-eslint/no-floating-promises: error- Promesses non gérées = erreur - ✅
@typescript-eslint/no-misused-promises: error- Promesses mal utilisées = erreur - ✅
@typescript-eslint/await-thenable: error- Await sur non-promesse = erreur - ✅
@typescript-eslint/no-unnecessary-type-assertion: error- Assertions inutiles = erreur - ✅
@typescript-eslint/no-non-null-assertion: error- Non-null assertions interdites - ✅
@typescript-eslint/prefer-nullish-coalescing: error- Force??au lieu de|| - ✅
@typescript-eslint/prefer-optional-chain: error- Force l'optional chaining - ✅
@typescript-eslint/no-non-null-asserted-optional-chain: error- Chaînage + assertion interdite - ✅
@typescript-eslint/no-explicit-any: error-anyexplicite interdit
Variables et code mort :
- ✅
@typescript-eslint/no-unused-vars: error- Variables non utilisées = erreur (sauf_*)
Bonnes pratiques JavaScript/TypeScript :
- ✅
prefer-const: error- Forceconstquand possible - ✅
no-var: error- Interditvar - ✅
object-shorthand: error- Force la syntaxe raccourcie - ✅
prefer-template: error- Force les template literals - ✅
eqeqeq: error- Force===et!== - ✅
curly: error- Force les accolades dans if/for - ✅
no-throw-literal: error- Interdit de throw des primitives - ✅
no-return-await: error- Interditreturn await
React :
- ✅
react-hooks/rules-of-hooks: error- Règles des hooks strictes - ✅
react-hooks/exhaustive-deps: error- Dépendances des hooks strictes
Console/Debug :
- ✅
no-console: warn- Console interdit (sauf warn/error) - ✅
no-debugger: error- Debugger interdit - ✅
no-alert: error- Alert interdit
Longueur de code :
- ✅
max-lines: error- Max 250 lignes par fichier - ✅
max-lines-per-function: error- Max 40 lignes par fonction
Configuration ParserOptions
Pour activer les règles TypeScript avec type information :
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2020,
"sourceType": "module",
"project": "./tsconfig.json"
}
}
Objectif
Le but n'est PAS d'éviter les erreurs, mais d'avoir une très haute qualité de code en :
- Détectant les bugs avant l'exécution
- Forçant les bonnes pratiques
- Éliminant le code mort
- Garantissant la sécurité des types
- Prévenant les erreurs courantes