Основы Linux
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Курс по подписке
Проектируйте типы, которые сами не дают написать неправильный код
Получить доступ к курсу
Курс по подписке · Обучение в своём темпе
О курсе
Базовый 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, без установки программ
AI-помощник
На страницах курса, уроков и заданий есть кнопка «Спросить AI». Помощник знает материалы именно этого курса и урок, на котором вы сейчас, поэтому отвечает по теме и показывает, в каких уроках об этом говорится.
Не поняли урок с первого раза — попросите объяснить проще или привести ещё один пример.
Застряли — подскажет, с чего начать, и поможет найти ошибку в вашем решении. Готового решения не даёт.
Спросите, где объясняли понятие, — и получите ссылки на нужные уроки курса.
Уточняйте без повторов: помощник помнит разговор, а недавние разговоры курса сохраняются.
Входит в каждый тариф оплаченной подписки — Basic и Premium. В Premium лимиты использования AI-помощника выше — им можно пользоваться активнее. Это помощник в обучении, а не генератор готовых ответов: он объясняет и подсказывает, а задания вы решаете сами.
Программа
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: углубленный уровень».
Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.
Путь запроса от URL до готовой страницы: DNS, TCP, TLS, HTTP, кеш, cookies, API и защита веб-приложений.
Защита от современных атак для нетехнических специалистов: фишинг, пароли и MFA, инциденты, дипфейки и безопасная работа с ИИ.
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.