Variance Annotations (in/out)
TypeScript 🔴 SeniorDé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.