Prog Academy
RU UA

Курс за підпискою

TypeScript: поглиблений рівень

Проєктуйте типи, які самі не дають написати неправильний код

  • 11 модулів
  • 30+ практичних завдань
  • Автоматична перевірка
  • Українською

Отримати доступ до курсу

Курс за підпискою · Навчання у власному темпі

Про курс

Що це за курс?

Базовий TypeScript ловить опечатки. Поглиблений — робить неможливими цілі класи помилок: узагальнені функції зберігають точний тип даних, утилітні й мапові типи виводять нові типи з наявних, дискриміновані union описують стан так, що неможливий стан просто не скомпілюється, а type guards перетворюють непевні зовнішні дані на перевірені. Курс проходить цей шлях на реальних сценаріях: відповіді API, обробка замовлень, валідація конфігурації, типізовані репозиторій, кеш і шина подій, скінченні автомати.

Аудиторія

Для кого цей курс?

  • Знаєте основи TypeScript

    Навчитеся писати узагальнені функції та будувати утилітні, мапові й умовні типи з infer на основі наявних.

  • Працюєте з даними з API

    Перевірятимете зовнішні дані власними type guards і функціями-твердженнями, а стан описуватимете дискримінованими union.

  • Пишете повторно використовувані API

    Типізуватимете перевантаження, функції вищого порядку, абстрактні класи, репозиторій, кеш і шину подій.

Спершу потрібна підготовка

Курс спирається на знання, позначені нижче як обов’язкові.

Потрібно знати

  • Курс «TypeScript: основи» або впевнене знання базових типів, інтерфейсів, union-типів, звуження і класів.

    Детальніше
    • Встановлювати нічого не треба: код компілюється і виконується прямо в браузері.

Якщо цих знань ще немає — пройдіть курси за порядком:

  1. Обов’язково TypeScript: основи
  2. Цей курс TypeScript: поглиблений рівень

Результат

Що ви навчитеся робити

розуміти сумісність типів: структурна типізація, підтипи, unknown і never

писати узагальнені функції, типи й класи з обмеженнями, keyof та індексним доступом

будувати нові типи з наявних: утилітні, мапові й умовні типи, infer

моделювати дані дискримінованими union з вичерпною перевіркою

перевіряти зовнішні дані власними type guards і функціями-твердженнями

типізувати перевантаження, функції вищого порядку, абстрактні класи й повторно використовувані API

Формат

Як влаштоване навчання?

31 практичне завдання на TypeScript з автоматичною перевіркою на прихованих тестах. У більшості завдань оцінюється не лише результат програми, а й типи: готова програма-перевірка містить перевірки на рівні типів, тож функція з any чи надто вільною сигнатурою просто не скомпілюється (tsc --strict). Є завдання на виправлення помилок типів, рефакторинг і доповнення частково написаного коду. Курс завершується міні-проєктом — типізованою системою обробки замовлень. Кожен розділ закінчується тестом: що скомпілюється, а що ні, який тип виведе компілятор, яке рішення надійніше.

  • Теорія

    21 урок з прикладами

  • Практика в браузері

    30+ завдань з автоматичною перевіркою

  • Тести

    11 тестів для самоперевірки

  • Власний темп

    Онлайн на my.prog.academy, без встановлення програм

AI-помічник

AI-помічник поруч під час навчання

На сторінках курсу, уроків і завдань є кнопка «Запитати AI». Помічник знає матеріали саме цього курсу й урок, на якому ви зараз, тому відповідає по темі й показує, у яких уроках про це йдеться.

  • Пояснить інакше

    Не зрозуміли урок з першого разу — попросіть пояснити простіше або дати ще один приклад.

  • Допоможе із завданням

    Застрягли — підкаже, з чого почати, і допоможе знайти помилку у вашому рішенні. Готового рішення не дає.

  • Знайде потрібну тему

    Запитайте, де пояснювали поняття, — і отримаєте посилання на потрібні уроки курсу.

  • Продовжить розмову

    Уточнюйте без повторів: помічник пам’ятає розмову, а нещодавні розмови курсу зберігаються.

Входить у кожен тариф оплаченої підписки — Basic і Premium. У Premium ліміти використання AI-помічника вищі — ним можна користуватися активніше. Це помічник у навчанні, а не генератор готових відповідей: він пояснює й підказує, а завдання ви розв’язуєте самі.

Програма

Програма курсу

11 модулів, 30+ практичних завдань з автоматичною перевіркою і 11 тестів. Відкрийте модуль, щоб побачити всі теми.

Розділ 1 — Типи як множини: сумісність і структурна типізація 2 уроки · 2 практики · 1 тест

Що насправді перевіряє компілятор, коли каже «не можна присвоїти»: типи як множини значень, підтипи, unknown і never, інтерфейси на повну

  • Теорія Типи як множини значень
  • Практика Права доступу в редакторі документів
  • Теорія Інтерфейси та псевдоніми на повну
  • Практика Шари конфігурації сервісу
  • Тест Типи як множини та інтерфейси
Розділ 2 — Узагальнені типи (generics) 2 уроки · 3 практики · 1 тест

Функції, типи, інтерфейси й класи з параметрами типу: як тип «подорожує» разом із даними і коли його треба вказати явно

  • Теорія Узагальнені функції: тип, що подорожує разом із даними
  • Практика Утиліти для маршруту доставки
  • Теорія Узагальнені типи, інтерфейси й класи
  • Практика Result для налаштувань сервера
  • Практика Обмежена черга
  • Тест Узагальнені типи
Розділ 3 — Обмеження, keyof, typeof та індексний доступ 2 уроки · 3 практики · 1 тест

Як сказати компілятору, що параметр типу має певну форму, і як виводити типи з ключів, значень і самих даних

  • Теорія Обмеження generics і keyof
  • Практика Вибірки й сортування каталогу
  • Теорія typeof і типи, виведені з даних
  • Практика Тарифні плани SaaS
  • Практика Індекси для CRM
  • Тест Обмеження, keyof і typeof
Розділ 4 — Утилітні типи 2 уроки · 3 практики · 1 тест

Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, NonNullable, ReturnType, Parameters, Awaited — нові типи з наявних без копіювання

  • Теорія Утилітні типи для об'єктів
  • Практика PATCH профілю користувача
  • Практика Публічний профіль форуму
  • Теорія Утилітні типи для union і функцій
  • Практика Маршрутизація подій застосунку
  • Тест Утилітні типи
Розділ 5 — Мапові та умовні типи 2 уроки · 3 практики · 1 тест

Будуємо нові типи з наявних: перетворюємо кожен ключ, перейменовуємо ключі шаблонними типами, обираємо тип за умовою і витягуємо частини типів через infer

  • Теорія Мапові типи: перетворюємо кожен ключ
  • Практика Валідатори для кожного поля форми
  • Практика Геттери і сетери з типу налаштувань
  • Теорія Умовні типи та infer
  • Практика Витягуємо типи з типів
  • Тест Мапові та умовні типи
Розділ 6 — Дискриміновані union і вичерпні перевірки 2 уроки · 3 практики · 1 тест

Описуємо варіанти даних union-типами з полем-тегом, змушуємо компілятор перевіряти, що оброблено кожен варіант, і моделюємо стан як скінченний автомат

  • Теорія Дискриміновані union: моделюємо варіанти даних
  • Практика Відповіді API на екрані
  • Практика Новий спосіб доставки
  • Теорія Стан як union: маленькі скінченні автомати
  • Практика Автомат станів платежу
  • Тест Дискриміновані union
Розділ 7 — Власні type guards, функції-твердження і валідація даних 2 уроки · 3 практики · 1 тест

Пишемо власні перевірки-звуження і функції-твердження, перевіряємо дані з JSON від unknown до точного типу і перевіряємо об'єкти через satisfies

  • Теорія Предикати типів і функції-твердження
  • Практика Очищення показників датчиків
  • Теорія Перевіряємо зовнішні дані: від unknown до типів
  • Практика Замовлення з JSON
  • Практика Сувора перевірка конфігурації
  • Тест Type guards і валідація
Розділ 8 — Складні сигнатури функцій 2 уроки · 3 практики · 1 тест

Перевантаження функцій, узагальнені функції вищого порядку, що зберігають точні параметри й результат, і rest-кортежі

  • Теорія Перевантаження функцій
  • Практика Розбір значень налаштувань
  • Теорія Функції вищого порядку з точними типами
  • Практика Мемоізація з лічильниками
  • Практика Конвеєри аналітики пульсу
  • Тест Складні сигнатури функцій
Розділ 9 — Класи та абстракції 2 уроки · 3 практики · 1 тест

Абстрактні класи й шаблонний метод, protected-хуки, узагальнені класи з обмеженнями, кілька інтерфейсів, статичні фабрики, композиція замість успадкування

  • Теорія Абстрактні класи і шаблонний метод
  • Практика Комунальні тарифи з шаблонним методом
  • Практика Звіти без помилок «not implemented»
  • Теорія Узагальнені класи, кілька інтерфейсів і композиція
  • Практика Узагальнене сховище в пам'яті
  • Тест Класи та абстракції
Розділ 10 — Типізовані API: практичні патерни 2 уроки · 2 практики · 1 тест

Шина подій на карті подій, кеш із впровадженим годинником, помилки як значення, import type і мала публічна поверхня модуля

  • Теорія Типізована шина подій і кеш
  • Практика Типізована шина подій магазину
  • Практика Кеш курсів із часом життя
  • Теорія Помилки як значення та межі модулів
  • Тест Типізовані API
Розділ 11 — Фінальний проєкт: система обробки замовлень 1 урок · 3 практики · 1 тест

Три етапи одного проєкту: розбір і перевірка сирих замовлень, розрахунок ціни зі знижками й податками, виконання замовлень зі складом і подіями

  • Теорія Проєкт: типізована обробка замовлень
  • Практика Проєкт, етап 1: розбір і перевірка замовлень
  • Практика Проєкт, етап 2: ціна, знижки й податки
  • Практика Проєкт, етап 3: виконання замовлень
  • Тест Підсумковий тест курсу

Стек

Які технології використовуються?

  • TypeScript

Код пишете й запускаєте в браузері на платформі — встановлювати нічого не потрібно.

Доступ

Як отримати доступ?

  1. Залиште заявку

    Заповніть коротку форму на цій сторінці.

  2. Завершіть реєстрацію в Telegram

    Після заявки перейдіть у Telegram-бот Prog Academy — він надішле подальші інструкції щодо доступу.

  3. Навчайтеся на платформі

    Уроки, практика й тести — на my.prog.academy, у зручному для вас темпі.

Контакт

Почніть навчання на платформі

Залиште контакти — надішлемо деталі доступу до курсу «TypeScript: поглиблений рівень».

Інші курси за підпискою

Термінал Linux (bash)

Основи Linux

Командний рядок з нуля: файли, права, процеси, мережа, bash-скрипти і SSH — у терміналі навчальної Ubuntu.

13 модулів · 40+ практичних завдань

JavaScript (Node.js)

Як працює веб: від URL до HTTPS, API і безпеки

Шлях запиту від URL до готової сторінки: DNS, TCP, TLS, HTTP, кеш, cookies, API і захист вебзастосунків.

11 модулів · 30+ практичних завдань

Часті питання про курс

Що це за курс?

«TypeScript: поглиблений рівень» — онлайн-курс за підпискою на навчальній платформі Prog Academy. Проєктуйте типи, які самі не дають написати неправильний код. Базовий TypeScript ловить опечатки. Поглиблений — робить неможливими цілі класи помилок: узагальнені функції зберігають точний тип даних, утилітні й мапові типи виводять нові типи з наявних, дискриміновані union описують стан так, що неможливий стан просто не скомпілюється, а type guards перетворюють непевні зовнішні дані на перевірені. Курс проходить цей шлях на реальних сценаріях: відповіді API, обробка замовлень, валідація конфігурації, типізовані репозиторій, кеш і шина подій, скінченні автомати.

Які знання потрібні перед стартом?

Потрібно: курс «TypeScript: основи» або впевнене знання базових типів, інтерфейсів, union-типів, звуження і класів. Встановлювати нічого не треба: код компілюється і виконується прямо в браузері.

Які практичні завдання будуть?

31 практичне завдання на TypeScript з автоматичною перевіркою на прихованих тестах. У більшості завдань оцінюється не лише результат програми, а й типи: готова програма-перевірка містить перевірки на рівні типів, тож функція з any чи надто вільною сигнатурою просто не скомпілюється (tsc --strict). Є завдання на виправлення помилок типів, рефакторинг і доповнення частково написаного коду. Курс завершується міні-проєктом — типізованою системою обробки замовлень. Кожен розділ закінчується тестом: що скомпілюється, а що ні, який тип виведе компілятор, яке рішення надійніше.

Які технології використовуються?

TypeScript. Код пишете й запускаєте прямо в браузері на платформі — встановлювати нічого не потрібно.

Скільки модулів містить курс?

11 модулів: Типи як множини: сумісність і структурна типізація; Узагальнені типи (generics); Обмеження, keyof, typeof та індексний доступ; Утилітні типи; Мапові та умовні типи; Дискриміновані union і вичерпні перевірки; Власні type guards, функції-твердження і валідація даних; Складні сигнатури функцій; Класи та абстракції; Типізовані API: практичні патерни; Фінальний проєкт: система обробки замовлень. Практичних завдань з автоматичною перевіркою — 30+, тестів — 11.

Як отримати доступ?

Залиште заявку на цій сторінці й завершіть реєстрацію в Telegram-боті Prog Academy — там ви отримаєте подальші інструкції щодо доступу. Навчання проходить на платформі my.prog.academy у власному темпі.

Чи входить курс у підписку?

Так. Курс входить у підписку на платформі Prog Academy: доступ до всіх курсів за підпискою; ai-помічник з навчання в кожному курсі; усі уроки, домашні завдання та автоматична перевірка; нові курси за підпискою додаються автоматично.

Не знайшли відповідь?

Залиште запитання — підкажемо, чи підходить вам курс і з чого краще почати.