Что такое аннотации вариантности (Variance Annotations, TS 4.7+)?
out T— ковариантный (только на выходе):Producer<Dog> extends Producer<Animal>in T— контравариантный (только на входе):Consumer<Animal> extends Consumer<Dog>in out T— инвариантный (и вход, и выход)- Влияет на совместимость типов: Dog extends Animal
- Оптимизация производительности: пропуск структурного анализа