story-research-zapwall/docs/STRICT_CONFIG_SUMMARY.md
Nicolas Cantu 9ea4965c05 docs: Fusion et simplification documentation
- Fusion tous documents commissions en technical.md
- Suppression documents redondants :
  - architecture.md, commissions.md, commission-system.md
  - commission-implementation.md, split-and-transfer.md
  - implementation-summary.md, content-delivery-verification.md
- Documentation fidèle au code actuel
- remaining-tasks.md mis à jour avec état réel
- Documentation centralisée et sans répétitions
2025-12-27 21:29:57 +01:00

76 lines
3.1 KiB
Markdown

# 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` - `any` explicite interdit
#### Variables et code mort :
-`@typescript-eslint/no-unused-vars: error` - Variables non utilisées = erreur (sauf `_*`)
#### Bonnes pratiques JavaScript/TypeScript :
-`prefer-const: error` - Force `const` quand possible
-`no-var: error` - Interdit `var`
-`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` - Interdit `return 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 :
```json
{
"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