TypeScript : installation et mode strict
Sommaire
TypeScript ajoute un système de types au-dessus de JavaScript, vérifié avant même l’exécution du code. Avant d’écrire la première ligne, il faut un environnement capable de vérifier ces types et de les faire respecter strictement : c’est l’objet de cette première étape.
Objectifs#
Objectifs
- Installer Node.js et les dépendances nécessaires à la vérification de types
- Comprendre ce que change le mode strict de TypeScript
- Savoir valider un exercice avec le compilateur
Installation#
Le compilateur TypeScript (typescript) et l’exécuteur tsx sont les deux seules dépendances utiles pour suivre ce parcours. typescript sert uniquement à vérifier les types (tsc --noEmit), jamais à produire du JavaScript : aucune étape de compilation manuelle n’est nécessaire pour lire ou exécuter les exercices.
nvm use
npm installtsx exécute directement un fichier .ts avec Node, sans étape intermédiaire. Un éditeur comme VS Code embarque déjà son propre serveur de langage TypeScript, actif dès qu’un fichier .ts est ouvert : vérification de types en direct, autocomplétion et survol des types fonctionnent sans extension tierce.
Le mode strict#
Le réglage strict: true d’un fichier tsconfig.json regroupe plusieurs vérifications indépendantes activées d’un coup. Les plus importantes :
noImplicitAnyinterdit à TypeScript de deviner silencieusement le typeanyquand une annotation manque. Sans ce réglage, du code non typé compile sans avertissement.strictNullChecksretirenulletundefinedde tous les types par défaut. Une variable de typestringne peut plus valoirnull, sauf si son type l’autorise explicitement (string | null).strictFunctionTypes,strictBindCallApplyetstrictPropertyInitializationrenforcent la vérification des types de fonctions, dethis, et imposent qu’une propriété de classe soit bien initialisée.
Options complémentaires utiles#
Trois options ne font pas partie de strict mais renforcent encore le typage, et reviennent régulièrement dans la suite du parcours :
noUncheckedIndexedAccess: un accès à un tableau par position (tableau[i]) n’est jamais garanti d’exister, TypeScript ajoute automatiquement| undefinedau résultat.exactOptionalPropertyTypes: une propriété optionnelle (champ?: string) doit être absente ou contenir une vraie valeur du type déclaré, jamais explicitementundefined.noImplicitReturns: si une fonction retourne une valeur dans une branche, elle doit le faire dans toutes les branches possibles.
Attention
Sans strict, TypeScript reste beaucoup plus permissif et laisse passer une grande partie des erreurs que ce parcours cherche justement à apprendre à repérer.
Valider un exercice#
Deux commandes suffisent au quotidien : vérifier le typage d’un dossier d’exercices, et exécuter un fichier qui contient du code réellement exécutable (pas seulement des déclarations de types).
npx tsc --noEmit -p 01-bases
npx tsx 01-bases/01-exercice.tsAstuce
Passer un fichier .ts isolé à tsc (sans l’option -p) désactive la lecture du tsconfig.json : le mode strict n’est alors plus appliqué, ce qui masque de vraies erreurs. La validation se fait toujours par dossier de module entier.