15 - Glossaire
Tous les termes de la serie, par ordre alphabetique. Chaque définition renvoie vers l'article qui couvre le concept en détail.
A
AsyncGeneratorT une par une avec yield. Implemente AsyncIterable<T>. → Article 13
AsyncIterablefor await...of attend. Plus générique que AsyncGenerator pour les signatures de fonctions. → Article 13
Augmentation de module — Technique pour ajouter des déclarations a un module npm existant avec declare module "nom" {}. Permet d'etendre les types de libs tierces. → Article 10
AwaitedPromise<T>. Awaited<Promise<Promise<string>>> donne string. → Article 13
B
Bivariance — Quand un paramètre de type est accepte dans les deux sens (covariant et contravariant). Les méthodes declarees avec la syntaxe de méthode sont bivariantes en TypeScript. → Article 08
Branded type — Type qui ajoute un "tag" fantome a un type primitif pour le différencier d'un autre. Brand<string, "UserId"> empeche de passer un OrderId là où un UserId est attendu. → Article 05
C
Conditional type — Type qui utilise la syntaxe T extends U ? X : Y pour choisir entre deux types selon une condition. Équivalent du ternaire au niveau des types. → Article 02
Const type parameter — Paramètre de type prefixe par const (<const T>) qui force l'inference des literals sans que l'appelant ecrive as const. Disponible depuis TypeScript 5.0. → Article 06
Contravariance — Quand la relation de sous-typage s'inverse. Les paramètres de fonctions sont contravariants : Consumer<Animal> est assignable a Consumer<Dog>. → Article 08
Covariance — Quand la relation de sous-typage se conserve. Les retours de fonctions sont covariants : Producer<Dog> est assignable a Producer<Animal>. → Article 08
D
Déclaration merging — Mecanisme de TypeScript qui fusionne automatiquement deux déclarations du meme nom (interfaces uniquement). → Article 10
Distributive conditional type — Comportement ou un conditional type se distribue sur les membres d'une union quand le paramètre de type est "nu". T extends U ? X : Y avec T = A | B donne (A extends U ? X : Y) | (B extends U ? X : Y). → Article 03
E
Exhaustive check — Verification a la compilation que tous les cas d'une union sont geres. Avec ts-pattern, .exhaustive() fait cette vérification. → Article 12
G
Global augmentation — Technique pour ajouter des types au scope global avec declare global {}. Utile pour etendre Window, process.env, etc. → Article 10
I
infer — Mot-clé qui capture un sous-type inconnu dans un conditional type. T extends Promise<infer U> ? U : never extrait U de la Promise. → Article 02
Invariance — Quand un paramètre de type n'est accepte dans aucun sens (ni covariant ni contravariant). Se produit quand T est en position d'entree et de sortie. → Article 08
K
Key remapping — Syntaxe as dans un mapped type qui permet de renommer ou filtrer les clés. [K in keyof T as NewName]. Disponible depuis TypeScript 4.1. → Article 01
M
Mapped type — Type qui itéré sur les clés d'un autre type avec [K in keyof T] pour construire un nouveau type. Base de Partial, Required, Readonly. → Article 01
Module augmentation — Voir augmentation de module.
N
Naked type parameter — Paramètre de type utilise directement dans un conditional type (pas enveloppe). Declenche la distribution sur les unions. [T] extends [U] désactivé la distribution en enveloppant T. → Article 03
O
Opaque type — Voir branded type.
Overload — Déclaration de plusieurs signatures pour une meme fonction. L'appelant voit les signatures d'overload, pas la signature d'implementation. → Article 09
P
Pattern matching — Technique de programmation qui compare une valeur contre des patterns structurels. En TypeScript, ts-pattern fournit du pattern matching type-safe. → Article 12
Phantom type — Propriété dans un type qui n'existe pas au runtime mais qui differencie les types a la compilation. Utilise dans les branded types (__brand). → Article 05
R
Result pattern — Pattern ou une fonction retourne { ok: true; value: T } | { ok: false; error: E } au lieu de lancer des exceptions. Force l'appelant a gerer les deux cas. → Article 13
S
satisfies — Operateur (TypeScript 4.9) qui vérifié qu'une valeur est compatible avec un type sans perdre la precision de l'inference. value satisfies Type. → Article 06
Symbol — Primitif JavaScript dont chaque instance est unique. Utile comme clés de propriétés sans collision. Symbol("id") !== Symbol("id"). → Article 11
T
Template literal type — Type string construit avec la syntaxe backtick. `prefix_${string}` accepte toute string commencant par "prefix_". Les unions generent le produit cartesien. → Article 04
Type erasure — Processus de compilation ou TypeScript supprime tous les types, interfaces, generics et annotations. Le JavaScript généré n'a aucune trace des types. → Article 14
Type recursif — Type qui se référencé lui-meme pour descendre dans des structures imbriquees. DeepPartial<T> applique Partial recursivement a tous les niveaux. → Article 07
U
unique symbol — Type literal pour un symbol spécifique, obtenu en declarant un symbol comme const. Plus precis que symbol. Garanti unique par le compilateur. → Article 11
V
Variance — Relation entre les sous-types d'un paramètre de type et les sous-types du type qui le contient. Covariant (meme sens), contravariant (sens inverse), invariant (aucun), bivariant (les deux). → Article 08
Variance annotations — Annotations in (contravariant) et out (covariant) sur les paramètres de type. Documentent et verifient la variance. Disponible depuis TypeScript 4.7. → Article 08
W
Well-known symbol — Symbols définis par le standard ECMAScript qui permettent de personnaliser le comportement des objets. Symbol.iterator, Symbol.hasInstance, Symbol.toPrimitive. → Article 11
Article précédent : 14 - Type erasure
Serie précédente : TypeScript — le système de types
Serie suivante : TypeScript — en pratique