Ce support sur le langage TypeScript (en version 5.0 au moment de l'écriture) s'adresse aux développeurs, disposant déjà d'une pratique de programmation dans d'autres langages, qui souhaitent optimiser et sécuriser la production de code JavaScript dans un projet de développement. Si la connaissance basique du langage JavaScript est un plus pour la lecture de ce livre, elle n'est toutefois pas indispensable pour appréhender les différentes notions étudiées.Dans le premier...
Ce support sur le langage TypeScript (en version 5.0 au moment de l'écriture) s'adresse aux développeurs, disposant déjà d'une pratique de programmation dans d'autres langages, qui souhaitent optimiser et sécuriser la production de code JavaScript dans un projet de développement. Si la connaissance basique du langage JavaScript est un plus pour la lecture de ce livre, elle n'est toutefois pas indispensable pour appréhender les différentes notions étudiées.
Dans le premier chapitre, les auteurs commencent par présenter les principes de fonctionnement du langage avant de mettre en place l'environnement de développement utilisé pour les exemples qui repose sur Visual Studio Code et Node.js. Puis, dans la suite des chapitres, le lecteur découvre les différentes fonctionnalités du langage (types, modules, décorateurs, généricité, asynchronisme, types avancés…) ainsi que les paradigmes de programmation possibles (programmation orientée objet et programmation fonctionnelle).
Pour finir, le dernier chapitre propose une mise en application des différentes notions étudiées au travers du développement, étape par étape, d'une application Node.js avec la bibliothèque Fastify. Il permet également de découvrir comment enrichir le fonctionnement d'une bibliothèque en utilisant les fonctionnalités de TypeScript et plusieurs patrons de conception (MVC, Repository, injection de dépendances).
Des éléments complémentaires sont disponibles en téléchargement sur le site www.editions-eni.com.
3. Le principe d’ouverture à l’extension, fermeture à lamodification
4. Le principe de substitution de Liskov
5. Le principe de ségrégation des interfaces
6. Le principe d’inversion des dépendances
Les modules
Introduction
Historique
1. Pattern module
2. AMD et CommonJs
3. Standardisation
La norme ECMAScript 2015
1. Export
2. Import
3. Import assert
Gestion des types
Chargement et résolutions
1. Résolutions
2. Chargement
La généricité
Introduction
Déclaration de base
Classes et interfaces
Contraintes
Générique et constructeur
Les décorateurs
Introduction
Décorateurs expérimentaux
1. Décorateurs expérimentaux de classe
2. Décorateurs expérimentaux de méthode
3. Décorateurs expérimentaux de propriété
4. Décorateurs expérimentaux de paramètre
5. Fabrique de décorateurs
6. Métadonnées
Décorateurs ECMAScript
1. Décorateurs ECMAScript de classe
2. Décorateurs ECMAScript de méthode
3. Décorateurs ECMAScript de propriété
4. Décorateurs ECMAScript d’accesseurs
a. Décorateur "getter"
b. Décorateur "setter"
c. Décorateur d’accesseurs automatiques
Asynchronisme
Introduction
Callback hell
Promesse
1. Historique
2. Promesses ECMAScript 2015
a. Résolution des promesses
b. Then, catch et finally
c. Méthodes statiques
d. Conclusion
Async/await
Système de types avancés
Introduction
Alias de type
Type never
Type union et intersection
1. Union
2. Intersection
Type guards
1. Introduction
2. Opérateur typeof
3. Opérateur instanceof
4. Opérateur in
5. Union discriminante
6. Type guards définis par l’utilisateur
7. Gestion de null et undefined
8. Cas impossible
9. Fonction d’affirmation
Types littéraux
Modèle de type littéral
Type index
Mapped type
1. Avant TypeScript 2.1
2. Les opérateurs
3. Remappage des clés
4. Mapped type natif
Affirmation constante
Tuples variadiques
Type conditionnel
1. Les bases
2. Distributivité
3. Opérateur infer
4. Type conditionnel natif
Opérateur satisfies
TypeScript et la programmation fonctionnelle
Introduction
Fonction pure et impure
Immutabilité
Itération
Conditions
Fonction partielle
Currying
Pattern Matching
Composition de fonctions
Pour aller plus loin…
Un premier projet avec Node.js
Introduction
Mise en place du projet
1. Création du fichier package.json
2. Mise en place de TypeScript
a. Installation
b. Configuration de TypeScript
3. Une première application
Création du Framework MVC
1. Registre des routes
2. Fabrique de contrôleurs
3. Le décorateur Controller
4. La fabrique de décorateurs Action
5. Création du contrôleur EmployeeController
6. Initialisation de l’application
Validation et OpenApi
1. Typage des schémas
2. Le décorateur de propriété SchemaProperty
3. Liaison entre une action et un modèle
4. Le décorateur de méthode Model
5. Gestion des schémas dans la classe Server
6. L’explorateur d’API
7. L’action post du contrôleur EmployeeController
Accès et persistance des données
1. Typage des entités métier
2. Persistance des données
3. Repository
Inversion des dépendances
1. Le conteneur de dépendances
2. Le décorateur Inject
3. Injection des dépendances
4. Stockage des données dans un fichier
Allez plus loin
Félix BILLON
Ingénieur informatique, Félix Billon exerce le métier de consultant indépendant, spécialiste dans le développement web. Reconnu Microsoft MVP (Most Valuable Professional) dans la catégorie Developer Technologies, il co-organise le meetup Paris TypeScript et a à cœur de partager ses connaissances techniques lors de conférences et en écrivant des articles de blog.
Passionné par le développement web, Sylvain Pontoreau a été Master Trainer TypeScript chez Microsoft pendant plus de deux ans. Membre actif de la communauté TypeScript et organisateur du Meetup Paris TypeScript, il participe activement en tant que speaker à des événements afin de transmettre sa passion et ses connaissances sur ce langage !