Вывод типов и совместимость
Как TypeScript выводит типы, совместимость типов, ковариантность и контравариантность
Вывод типов и совместимость
TypeScript не требует аннотировать каждую переменную – компилятор умеет выводить типы из контекста. А когда нужно проверить, можно ли передать один тип вместо другого, в дело вступает система совместимости типов, основанная на структурной типизации. Понимание этих механизмов – ключ к написанию идиоматичного TypeScript-кода без избыточных аннотаций.
Что вы узнаете
- Как работает вывод типов: best common type, contextual typing, вывод в дженериках
- Как TypeScript определяет совместимость типов через структурное подтипирование
- Как сравниваются функции, классы и перечисления
- Что такое ковариантность и контравариантность параметров и возвращаемых типов
- Как флаг
strictFunctionTypesвлияет на проверку функций
Структура главы
- Как TypeScript выводит типы – best common type, contextual typing, вывод параметров дженериков
- Совместимость типов – структурное подтипирование, сравнение функций, опциональные параметры, совместимость enum и классов
- Ковариантность и контравариантность – бивариантность параметров, strictFunctionTypes, ковариантность возвращаемых типов, контравариантность параметров
Предварительные требования
- Система типов TypeScript (ch06-ts-type-system)
- Типизация функций (ch33-ts-functions)