Bienvenue dans l'atelier Typescript avancé.
Nous allons voir quelques uns des concepts avancés de Typescript. Ces concepts ont généralement pour but de "réduire" le type de nos variables à un type le plus précis possible (celui qui la représente le mieux ou celui qui ne contient que ce dont on a besoin). "Réduire" un type permet de bénéficier d'une meilleure (parfaite!) autocomplétion et de détecter des erreurs à la compilation (plutôt qu'une fois le projet en production).
Des erreurs se glissent dans le code de cet atelier, c'est normal. Elles sont destinées à êtres corrigées au fur et à mesure.
Le code complété et annoté en fonction des questions se trouvera sur les branches présentation/<date de la présentation>
.
Ce dépôt peut également évoluer en fonction de vos interrogations ou de l'évolution du langage.
-
Introduction et notations
tsconfig.json
- Notation des fonctions
- Interfaces et Types
- Types anonymes
-
any
et typageany
any
impliciteas
unknown
- Type guards
- Type guards avec "predicate"
-
Generics
- Generics
-
let
,const
oureadonly
let
const
readonly
as const
-
Tuples
- Les tuples
-
Destructuring et spreading
- Destructuring
- Spreading
-
Unions
- Eviter le type
string
- Unions VS Enums
- Discriminated unions
- Conversion en union
- Eviter le type
-
Intersections
- Intersections
-
never
never
-
Utility types
Omit
Pick
Readonly
Partial
Required
Exclude
Extract
- Autres types et en apprendre plus
Je vous suggère d'éxécuter les tests unitaires lors de la progression de cet atelier avec la commande :
npm run test
Je recommande d'installer l'extension "Twoslash queries" qui permet d'afficher le type d'une variable en utilisant ce commentaire en dessous : // ^?
. Par exemple :
const duchesse = { nom: 'Duchesse', age: 7 };
// ^?