open atlas

typescript

Система типов TypeScript вглубь

От структурной типизации до программирования на типах — дженерики, условные и отображённые типы, типизация реальных систем.

10 юнитов·41 уроков·~10 ч

Начать трек
00

С нуля

Что дают типы и два мира: значения и типы.
01

Основы

Типы TypeScript структурны и в основном выводятся.
02

Повседневные типы

Объединения плюс сужение моделируют «одно из, выясни какое».
03

Дженерики

Дженерики — функции над типами с ограничениями и выводом.
04

Система типов вглубь

Условные, отображённые и template-literal типы делают типы программируемыми.
05

Программирование на типах

Рекурсия и дистрибутивность позволяют вычислять на уровне типов — в пределах лимитов.
06

Функции и this

Перегрузки, типизация this, assertion-функции и satisfies.
07

Конфиг, модули и сборка

Строгость tsconfig и разрешение модулей решают, что компилируется.
08

Типы на практике

Типизируй границы: API, валидация, end-to-end с tRPC.
09

Собираем вместе

Собери полностью типизированную фичу от начала до конца.

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

◆ Проекты

Лаборатория профилирования горячего пути

Возьми заведомо медленный кусок JavaScript и преврати его в управляемый эксперимент. Ты соберёшь микробенчмарк, которому действительно можно верить, отпрофилируешь горячий путь так, чтобы суметь назвать, что именно делает движок, и применишь оптимизации с учётом устройства движка — мономорфизм, устранение мегаморфных точек вызова, сокращение аллокаций — доказывая каждый выигрыш цифрами, а не ощущениями. Это вся дисциплина работы над производительностью в миниатюре: измерь, выдвини гипотезу о движке, измени одну вещь, измерь снова.

◆ Проекты

JSON-парсер с нуля

Напиши рекурсивно-нисходящий парсер JSON по спецификации — токенизатор, диспетчер значений, обработчик escape-последовательностей, декодер чисел — и наблюдай, как каждый крайний случай RFC 8259 превращается в конкретный путь в коде.

◆ Проекты

Типобезопасный SDK для API

Собери клиент, которому другие инженеры действительно будут доверять: типизированный SDK поверх настоящего HTTP API, где неправильное поле, пропущенный вариант и ответ, соврамший о своей форме, ловит компилятор — а не падение в проде. Ты смоделируешь домен через размеченные объединения и дженерики, проверишь каждый ответ на границе и дашь выводу типов донести точные типы до места вызова, не оставив ни одного `any`, которым прикрывают дыры.

Следующий трек

Основы System Design

Кирпичи больших систем и фреймворк интервью — масштабирование, доступность, распределение данных, кэширование, асинхронность и трейдоффы под нагрузкой.