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

Что такое bivariance и почему методы ковариантны?

Бивариантность означает, что параметры функции проверяются и ковариантно, и контравариантно одновременно. Методы в интерфейсах (method(x: T): void) всегда бивариантны, даже с strictFunctionTypes. Это сделано намеренно для совместимости с DOM API и паттерном event handlers, где подтип события передаётся в обработчик базового типа.

Что такое bivariance и почему методы ковариантны? | JScriptiser