Перейти к содержимому
31 / 58

Что такое ковариантность и контравариантность?

Ковариантность -- подтип можно использовать вместо базового типа (массив Dog[] подходит туда, где ожидается Animal[]). Контравариантность -- наоборот, базовый тип можно использовать вместо подтипа (функция (a: Animal) => void подходит туда, где ожидается (d: Dog) => void). Это определяет, как подтипизация работает для составных типов -- массивов, функций, промисов.

Что такое ковариантность и контравариантность? | JScriptiser