Variance Annotations (in/out)

TypeScript 🔴 Senior

Définition

Annotations explicites sur les paramètrès génériques pour déclarer la covariance (out), la contravariance (in) ou l'invariance. Ajoutées en TS 4.7.

Analogie

Comme des panneaux 'entrée' et 'sortie' sur un parking — ils précisent dans quel sens circule le type.

Exemple de code

interface Producer<out T> { get(): T }
interface Consumer<in T> { accept(val: T): void }
// Producer<Dog> assignable a Producer<Animal>
// Consumer<Animal> assignable a Consumer<Dog>

Cas d'usage

Documenter et vérifier la variance des types génériques dans les APIs de bibliothèques complexes.

#advanced#type-system

← → au clavier pour passer d'une fiche à l'autre