Variance Annotations (in/out)
TypeScript 🔴 SeniorDefinition
Annotations explicites sur les parametres generiques pour declarer la covariance (out), la contravariance (in) ou l'invariance. Ajoutees en TS 4.7.
Analogie
Comme des panneaux 'entree' et 'sortie' sur un parking — ils precisent 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 verifier la variance des types generiques dans les APIs de bibliotheques complexes.