Cours de TypeScript — de zéro à un programme qui tient debout
Par Dorian Chávez, fondateur de Hábil et architecte d'intégration. Voici comment nous formons ceux qui construisent des systèmes qui ne peuvent pas échouer.
Pour qui : celui qui a déjà suivi le cours de Go de cette maison, ou celui qui programme en JavaScript et veut cesser de découvrir les erreurs en production. On ne suppose aucune expérience préalable des types : chaque concept est expliqué quand il apparaît, et on explique pourquoi il existe, pas seulement comment on l'écrit.
Ce que tu sauras à la fin : écrire un programme complet avec des types, comprendre ce que tu as écrit et pouvoir l'expliquer à quelqu'un d'autre.
Ce dont tu as besoin avant de commencer : un ordinateur sous Linux Mint et savoir ouvrir un terminal. La Leçon 1 installe tout depuis zéro.
Le projet que tu vas construire
Le revisor : une API qui interroge une liste de services en même temps et un panneau web qui affiche le rapport, avec les types partagés entre les deux. C'est le même problème que dans le cours de Go, résolu cette fois en TypeScript.
Les dix leçons
| Leçon | Ce que tu construis | Ce que tu apprends | |
|---|---|---|---|
| 0 | Qu'est-ce que TypeScript, et ce qu'il n'est PAS | rien pour l'instant (lecture) | JS vs TS ; les types sont effacés à l'exécution ; ce qui est protégé et ce qui ne l'est pas ; pourquoi strict |
| 1 | Installer TypeScript sur ton Linux Mint | l'environnement et ton premier programme | Node LTS, tsc, éditeur, tsconfig strict, exécuter et déboguer |
| 2 | Types, fonctions et inférence | les fonctions de base du revisor |
primitifs, inférence, unions et littéraux, narrowing (affinage de type), null et undefined |
| 3 | Objets et modèle de données | le modèle Servicio / Estado |
type vs interface, typage structurel, readonly, unions discriminées |
| 4 | Collections, génériques et erreurs | la liste de services et le rapport | tableaux, Map/Set, génériques, types utilitaires, erreurs |
| 5 | Asynchronisme : qu'il vérifie tout à la fois | le revisor concurrent |
boucle d'événements (event loop), promesses, async/await, Promise.all vs allSettled, AbortController |
| 6 | Les données qui viennent de l'extérieur | validation de la configuration et des réponses | valider à la frontière ; types dérivés du schéma |
| 7 | Modules, tests et qualité | le vrai projet, avec des tests | modules ESM, tests pilotés par table de cas, lint et formatage |
| 8 | Le serveur | l'API HTTP du revisor |
serveur HTTP, routes typées, JSON, configuration, arrêt propre |
| 9 | L'écran et le programme terminé | le panneau web et le paquet final | React avec TypeScript et hooks, types partagés, XSS, compiler et publier |
À la fin de chaque leçon, il y a des exercices avec leurs solutions. Et le journal de bord est à toi : note-y ce qui t'a coûté.
Leçons
- Leçon 0 — Qu'est-ce que TypeScript, et ce qu'il n'est PAS
- Leçon 1 — Installer TypeScript sur ton Linux Mint
- Leçon 2 — Types, fonctions et inférence
- Leçon 3 — Objets et modèle de données
- Leçon 4 — Collections, génériques et erreurs
- Leçon 5 — Asynchronisme : qu'il vérifie tout à la fois
- Leçon 6 — Les données qui viennent de l'extérieur
- Leçon 7 — Modules, tests et qualité
- Leçon 8 — Le serveur
- Leçon 9 — L'écran et le programme terminé