Variance Annotations (in/out)

TypeScript 🔴 Senior

Definition

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.

Termes lies

#advanced#type-system