TypeScript: основы
Пишите JavaScript, в котором ошибки находит компилятор, а не пользователь
Курс по подписке
Проектируйте типы, которые сами не дают написать неправильный код
Получить доступ к курсу
Курс по подписке · Обучение в своём темпе · Без звонков и консультаций
О курсе
Базовый TypeScript ловит опечатки. Углубленный — делает невозможными целые классы ошибок: обобщенные функции сохраняют точный тип данных, утилитные и сопоставленные (mapped) типы выводят новые типы из существующих, дискриминированные union описывают состояние так, что невозможное состояние просто не скомпилируется, а type guards превращают ненадежные внешние данные в проверенные. Курс проходит этот путь на реальных сценариях: ответы API, обработка заказов, валидация конфигурации, типизированные репозиторий, кеш и шина событий, конечные автоматы.
Аудитория
Знаете основы TypeScript
Научитесь писать обобщенные функции и строить утилитные, сопоставленные и условные типы с infer на основе существующих.
Работаете с данными из API
Будете проверять внешние данные своими type guards и функциями-утверждениями, а состояние описывать дискриминированными union.
Пишете переиспользуемые API
Будете типизировать перегрузки, функции высшего порядка, абстрактные классы, репозиторий, кеш и шину событий.
Курс опирается на знания, отмеченные ниже как обязательные.
Нужно знать
Курс «TypeScript: основы» или уверенное знание базовых типов, интерфейсов, union-типов, сужения и классов.
Если этих знаний ещё нет — пройдите курсы по порядку:
Результат
понимать совместимость типов: структурная типизация, подтипы, unknown и never
писать обобщенные функции, типы и классы с ограничениями, keyof и индексным доступом
строить новые типы из существующих: утилитные, сопоставленные (mapped) и условные типы, infer
моделировать данные дискриминированными union с исчерпывающей проверкой
проверять внешние данные собственными type guards и функциями-утверждениями
типизировать перегрузки, функции высшего порядка, абстрактные классы и переиспользуемые API
Формат
31 практическое задание на TypeScript с автоматической проверкой на скрытых тестах. В большинстве заданий оценивается не только результат программы, но и типы: готовая программа-проверка содержит проверки на уровне типов, поэтому функция с any или слишком свободной сигнатурой просто не скомпилируется (tsc --strict). Есть задания на исправление ошибок типов, рефакторинг и дописывание частично готового кода. Курс завершается мини-проектом — типизированной системой обработки заказов. Каждый раздел заканчивается тестом: что скомпилируется, а что нет, какой тип выведет компилятор, какое решение надежнее.
21 урок с примерами
30+ заданий с автоматической проверкой
11 тестов для самопроверки
Онлайн на my.prog.academy, без установки программ
Платформа Prog Academy
Курс проходит на платформе Prog Academy — вместе с ним вы получаете AI-помощника и инструменты для поиска первой работы в IT.
Обучение
Вы учитесь, выполняя задания: каждую новую тему сразу применяете на практике, а не только читаете теорию. Задания проверяются автоматически, прямо в браузере.
Вы не остаётесь один на один с материалом
Что-то непонятно или застряли на задании — спросите прямо в уроке. Помощник объяснит тему проще, ответит на вопросы, поможет разобраться в условии задания и подскажет следующий шаг, найдёт нужное в материалах курса. Он знает, какой урок вы проходите, и помнит разговор.
Карьера
Успешно прошли курс — получаете сертификат и в один клик добавляете его в профиль LinkedIn.
Резюме на английском, украинском или русском — прямо на платформе. Ваши курсы и сертификаты добавляются в него в пару кликов.
Junior-вакансии и стажировки в одном месте — с подборкой под курсы, которые вы проходите.
Вся платформа — в одном аккаунте
Программа
11 модулей, 30+ практических заданий с автоматической проверкой и 11 тестов. Откройте модуль, чтобы увидеть все темы.
Что на самом деле проверяет компилятор, когда говорит «нельзя присвоить»: типы как множества значений, подтипы, unknown и never, интерфейсы в полную силу
Функции, типы, интерфейсы и классы с параметрами типа: как тип «путешествует» вместе с данными и когда его нужно указать явно
Как сказать компилятору, что параметр типа имеет определенную форму, и как выводить типы из ключей, значений и самих данных
Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, NonNullable, ReturnType, Parameters, Awaited — новые типы из существующих без копирования
Строим новые типы из существующих: преобразуем каждый ключ, переименовываем ключи шаблонными типами, выбираем тип по условию и извлекаем части типов через infer
Описываем варианты данных union-типами с полем-тегом, заставляем компилятор проверять, что обработан каждый вариант, и моделируем состояние как конечный автомат
Пишем собственные проверки-сужения и функции-утверждения, проверяем данные из JSON от unknown до точного типа и проверяем объекты через satisfies
Перегрузки функций, обобщенные функции высшего порядка, которые сохраняют точные параметры и результат, и rest-кортежи
Абстрактные классы и шаблонный метод, protected-хуки, обобщенные классы с ограничениями, несколько интерфейсов, статические фабрики, композиция вместо наследования
Шина событий на карте событий, кеш с внедренными часами, ошибки как значения, import type и маленькая публичная поверхность модуля
Три этапа одного проекта: разбор и проверка сырых заказов, расчет цены со скидками и налогами, выполнение заказов со складом и событиями
Стек
Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.
Доступ
Короткая форма на этой странице — без звонков и консультаций.
После формы перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.
Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.
Контакт
Оставьте контакты — пришлём детали доступа к курсу «TypeScript: углубленный уровень». Без звонков и консультаций.
Пишите JavaScript, в котором ошибки находит компилятор, а не пользователь
Научитесь писать программы, которые не простаивают, пока ждут сеть, диск или другой сервис
C++ Advanced: от основ языка к коду, который пишут в реальных проектах
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.