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

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 - 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 :

{
  "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