Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/TypeScript/contravariance

Что такое контравариантность параметров функций?

УглублённыйСистема типовДженерики
  • Параметры функций контравариантны: более широкий тип параметра → более узкий тип функции
  • (x: Animal) => void совместим с (x: Dog) => void? Нет — наоборот!
  • Функция, принимающая Event, НЕ может быть подставлена вместо функции, принимающей MouseEvent
  • strictFunctionTypes: true — включает строгую проверку контравариантности
  • Без этого флага: бивариантность параметров (менее безопасно)
  • infer в контравариантной позиции даёт intersection, в ковариантной — union
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov