React
Academy

Plan de cours

TypeScript

TypeScript est un langage JavaScript amélioré. Il s’agit d’un sur-ensemble du JavaScript auquel s’ajoutent des types et d’autres options. Il permet également de transpiler du JavaScript moderne vers d’anciennes versions du JavaScript (permettant ainsi l’exécution sur d’anciens appareils).

Voici quelques exemples d’applications populaires réalisées en TypeScript : Office Online, Visual Studio Code, AirBnb, Angular (Google), Lyft, Vue, Aurelia, Ubisoft, Slack et bien d’autres.

Jour 1

Tout ce que vous devez savoir sur TypeScript
1. Utilisation de TypeScript 
  • Qu’est-ce qui fait de TypeScript un langage JavaScript amélioré?
  • Installer TypeScript (et les dépendances : Node, npm, WebPack, etc.)
  • Transpiler votre code par le biais de la ligne de commande
  • Réaliser votre premier projet TypeScript
2. Syntaxe des déclarations de variables 
  • let
  • const
  • var
  • Portées : bloc par rapport à fonction
  • Destructurer (tableaux et objets)
  • Opérateur de décomposition
3. Inférence de types 
  • Notions fondamentales de l’inférence de types
  • Meilleur type générique
  • Typage contextuel
4. Utilisation des types 
  • Types de base : Boolean, Number, String, Array, Tuple, Enum, Object
  • Autres types : Any, Void, Null, Undefined, Never
  • Assertions de types
  • Types d’intersection
  • Types d’union
  • Garde-types (type guards)
  • Option --strictNullChecks avec types nullables
  • Alias de type
5. Interfaces 
  • Déclarer et utiliser des interfaces
  • Propriétés optionnelles
  • Propriétés Readonly
  • Vérification d’attribution pour les propriétés
  • Types de fonctions
  • Types indexables
  • Types de classes
  • Étendre les interface
  • Types hybrides
  • Classes permettant d’étendre les interfaces
6. Classes 
  • Syntaxe des classes
  • Héritages de classes
  • Modificateurs d’accessibilité publique, privée et protégée
  • Modificateurs Readonly
  • Get et Set (accesseurs)
  • Propriétés statiques
  • Classes abstraites
  • Fonction Constructor
  • Accesseur de la classe de base (super)
7. Fonctions et objets 
  • Syntaxe des fonctions
  • Types de fonctions
  • Paramètres optionnels et paramètres initialisés par défaut
  • Paramètres du reste
  • Valeur 'this'
  • Propriétés statiques
  • Fonctions des flèches
  • Fonctions des flèches et portée de 'this'
  • Surcharge
8. Compatibilité des types 
  • Utiliser le sous-typage structurel au lieu du sous-typage nominal
  • Comparer les types
  • Comparer les fonctions
  • Bivariance du paramètre de fonction
  • Paramètres optionnels et paramètres du reste
  • Valeurs de l’Enum
  • Classes
  • Valeurs génériques

Jour 2

Mieux comprendre le système de typage
9. Modules 
  • Syntaxe des modules
  • Exporter
  • Importer
  • Paramètre par défaut et caractère de remplacement
  • Éléments HTML pour déclarer les modules
  • Génération du code des modules
  • Utiliser d’autres bibliothèques JavaScript (modules aux formats Ambient et UMD)
  • Meilleures pratiques relatives aux modules
10. Namespace 
  • Syntaxe des namespaces
  • Séparer le code en plusieurs fichiers
  • Alias
  • Utiliser d’autres bibliothèques JavaScript (namespaces sans implantation)
11. Types avancés 
  • Types littéraux (chaîne et nombre)
  • Types d’union discriminés
  • Type 'this' polymorphe (pour le chaînage)
  • Types de signatures d’index
  • Types mappés
  • Types conditionnels
12. Génériques 
  • Syntaxe des types génériques
  • Utiliser des variables de type générique
  • Types génériques
  • Classes génériques
  • Contraintes génériques
13. Énumérations (enums) 
  • Enums à valeur numérique
  • Utiliser les variables de type générique
  • Enums hétérogènes (enums mixtes)
  • Membres calculés et constants
  • Enums d’union et types de membres d’enum
  • Enums à l’exécution
  • Mappage inversé
  • Enums sans implantation
14. Fusion de déclaration 
  • Entités de TypeScript
  • Fusionner des interfaces
  • Fusionner des valeurs namespace
  • Fusionner des valeurs namespace avec des classes, des fonctions et des enums
  • Augmentation de module
15. Mixins 
  • Syntaxe des mixins
  • Combiner des classes
16. Déplacer le code de JavaScript vers TypeScript 
  • Section JSDoc
  • Compiler des fichiers JavaScript avec TypeScript (indicateur allowJs dans le fichier config)
  • Renommer des fichiers JS en fichiers TS; commencer à intégrer des types dans les fichiers
  • Utiliser dts-gen