Система типов TypeScript
Что такое система типов, structural vs nominal, примитивы, объектные типы, type narrowing
О чём эта глава
TypeScript — это не просто «JavaScript с типами». Это полноценная система типов, построенная на уникальных принципах: структурная совместимость, полное стирание типов при компиляции и сознательный отказ от абсолютной корректности ради продуктивности.
Разберём систему типов от базовых концепций до продвинутых паттернов: зачем нужны типы, как работает структурная типизация, какие типы есть в языке и как TypeScript сужает их в потоке кода.
Содержание
- Что такое система типов и зачем она нужна
- Структурная vs номинальная типизация
- Примитивные типы, литералы и специальные типы
- Объектные типы: интерфейсы, type alias, классы
- Сужение типов (Type Narrowing) и контроль потока
Что ты научишься делать
- Понимать, почему TypeScript использует структурную типизацию и что это значит на практике
- Различать
any,unknown,neverиvoid— и выбирать правильный - Использовать
interfaceиtypeосознанно, а не наугад - Писать type guards и discriminated unions
- Объяснить систему типов TypeScript на собеседовании
Связанные темы
- Замыкания — типизация замыканий, потеря сужения типа в callback
- Асинхронность — типизация Promise, async/await, unknown в catch
- Движок V8 — type erasure: типы стираются при компиляции, V8 их не видит
- Каррирование — дженерики для curry и compose
Задания
Перейти к заданиям — 3 easy, 2 medium, 2 hard