TypeScript Notions fondamentales
Présentation
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 Express.js. 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.
Quizinclus dans
la version en ligne !
- Testez vos connaissances à l'issue de chaque chapitre
- Validez vos acquis
Table des matières
Introduction
- 1. Un peu d'histoire
- 2. ECMAScript
- 3. Pourquoi TypeScript ?
- 3.1 Transpilation
- 3.2 Typage statique
- 4. Les dessous du typage
- 4.1 Les fichiers de définition
- 4.2 Typage structurel
- 5. L'architecture de TypeScript
- 5.1 Core TypeScript Compiler
- 5.2 Standalone TS Compiler
- 5.3 Language Service
- 5.4 Options de compilation
- 6. Environnement de développement
- 6.1 Node.js
- 6.2 Visual Studio Code
- 6.3 Installer TypeScript
Types et instructions basiques
- 1. Variable et portée
- 2. Types basiques
- 2.1 Introduction
- 2.2 Types primitifs basiques
- 2.3 Types primitifs : undefined et null
- 2.4 Types par référence : array et tuples
- 2.5 Types par référence : object
- 2.6 Types spéciaux : any et void
- 2.7 Affirmation de type
- 2.8 Type spécial : unknown
- 3. Décomposition
- 4. Énumération
- 5. Conditionnelle
- 6. Opérateurs
- 6.1 Opérateurs arithmétiques
- 6.2 Opérateurs unaires
- 6.3 Opérateurs de comparaison
- 6.4 Opérateurs logiques combinatoires
- 7. Zoom sur les opérateurs
- 7.1 Opérateurs unaires + et -
- 7.2 Opérateur unaire !
- 7.3 Opérateurs == et ===
- 7.4 Opérateurs || et &&
- 7.5 Opérateur de décomposition
- 8. Boucles
- 8.1 Boucles for...in
- 8.2 Boucle for...of
- 9. Symbol
- 10. Itération et collections
- 10.1 Iterator
- 10.2 Générateurs
- 10.3 Map et Set
- 10.3.1 Map
- 10.3.2 Set
- 10.3.3 WeakMap et WeakSet
- 11.1 Les bases
- 11.2 Paramètre rest
- 11.3 Les closures
- 11.4 This et les fonctions fléchées
- 11.5 Type fonction
La programmation orientée objet
- 1. Introduction
- 2. Les classes
- 3. Les propriétés
- 4. Les méthodes
- 5. Les constructeurs
- 6. Le statisme
- 7. L'accessibilité des membres
- 8. L'encapsulation
- 9. L'héritage
- 10. L'abstraction
- 11. Les interfaces
- 12. Le polymorphisme
- 13. Les principes SOLID
- 13.1 Introduction aux principes SOLID
- 13.2 Le principe de responsabilité unique
- 13.3 Le principe d'ouverture à l'extension, fermeture à la modification
- 13.4 Le principe de substitution de Liskov
- 13.5 Le principe de ségrégation des interfaces
- 13.6 Le principe d'inversion des dépendances
Les modules
- 1. Introduction
- 2. Historique
- 2.1 Pattern module
- 2.2 AMD et CommonJs
- 2.3 Standardisation
- 3. La norme ECMAScript 2015
- 3.1 Export
- 3.2 Import
- 4. Chargement et résolutions
- 4.1 Résolutions
- 4.2 Chargement
La généricité
- 1. Introduction
- 2. Déclaration de base
- 3. Classes et interfaces
- 4. Contraintes
- 5. Générique et constructeur
Les décorateurs
- 1. Introduction
- 2. Décorateur de classe
- 3. Décorateur de méthode
- 4. Décorateur de propriété
- 5. Décorateur de paramètre
- 6. Fabrique de décorateurs
- 7. Métadonnées
Asynchronisme
- 1. Introduction
- 2. Callback hell
- 3. Promesse
- 3.1 Historique
- 3.2 Promesses ECMAScript 2015
- 3.2.1 Résolution des promesses
- 3.2.2 Then, catch et finally
- 3.2.3 Promise.all et Promise.race
- 3.2.4 Conclusion
Système de types avancés
- 1. Introduction
- 2. Alias de type
- 3. Type never
- 4. Type union et intersection
- 4.1 Union
- 4.2 Intersection
- 5. Type guards
- 5.1 Introduction
- 5.2 Opérateur typeof
- 5.3 Opérateur instanceof
- 5.4 Opérateur in
- 5.5 Union discriminante
- 5.6 Type guards définis par l'utilisateur
- 5.7 Gestion de null et undefined
- 5.8 Cas impossible
- 6. Types littéraux
- 7. Type index
- 8. Mapped type
- 8.1 Avant TypeScript 2.1
- 8.2 Les opérateurs
- 8.3 Mapped type natif
- 9. Affirmation constante
- 10. Type conditionnel
- 10.1 Les bases
- 10.2 Distributivité
- 10.3 Opérateur infer
- 10.4 Type conditionnel natif
TypeScript et la programmation fonctionnelle
- 1. Introduction
- 2. Fonction pure et impure
- 3. Immutabilité
- 4. Itération
- 5. Conditions
- 6. Fonction partielle
- 7. Currying
- 8. Pattern Matching
- 9. Composition de fonctions
- 10. Pour aller plus loin...
Un premier projet avec Node.js
- 1. Introduction
- 2. Préparation de la base de données
- 3. Mise en place du projet
- 3.1 Création du fichier package.json
- 3.2 Mise en place de TypeScript
- 3.2.1 Installation
- 3.2.2 Configuration de TypeScript
- 3.3 Amélioration de l’environnement de développement
- 3.3.1 Exécution de l'application
- 3.3.2 Débogage
- 3.4 Une première application
- 3.4.1 Mise en place de la bibliothèque Express.js
- 3.4.2 Gestion des variables d'environnement
- 3.4.3 Une première requête SQL
- 4.1 Registre des routes
- 4.2 Décorateurs de routes
- 4.2.1 Le décorateur Controller
- 4.2.2 Le décorateur Route
- 4.3.1 Création du contrôleur
- 4.3.2 Création des routes
- 5.1 Entité métier
- 5.2 Dépôt de données abstrait
- 5.2.1 Dépôt
- 5.2.2 Type d'opération
- 5.2.3 Dépôt de données abstrait
- 6.1 Service de gestion des dépendances
- 6.2 Registre de clé
- 6.3 Décorateurs de gestion des dépendances
- 6.4 Résolution des dépendances lors de la création des contrôleurs
- 6.5 Enregistrement d'une dépendance
- 7.1 Ajout d'un employé
- 7.2 Gestion des équipes
- 7.3 Changer l'équipe d'un employé
Auteurs
Félix BILLONEn savoir plus
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.
Sylvain PONTOREAUEn savoir plus
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 !
Caractéristiques
- Niveau Débutant à Initié
- Nombre de pages 438 pages
- Parution novembre 2019
- Livre (broché) - 17 x 21 cm
- ISBN : 978-2-409-02170-1
- EAN : 9782409021701
- Ref. ENI : RITYP
- Niveau Confirmé à Initié
- Parution novembre 2019
- HTML
- ISBN : 978-2-409-02171-8
- EAN : 9782409021718
- Ref. ENI : LNRITYP
Téléchargements
- Des fichiers complémentaires (55,4 Ko)