Основи Linux
Командний рядок з нуля: файли, права, процеси, мережа, bash-скрипти і SSH — у терміналі навчальної Ubuntu.
Курс за підпискою
Проєктуйте типи, які самі не дають написати неправильний код
Отримати доступ до курсу
Курс за підпискою · Навчання у власному темпі
Про курс
Базовий TypeScript ловить опечатки. Поглиблений — робить неможливими цілі класи помилок: узагальнені функції зберігають точний тип даних, утилітні й мапові типи виводять нові типи з наявних, дискриміновані union описують стан так, що неможливий стан просто не скомпілюється, а type guards перетворюють непевні зовнішні дані на перевірені. Курс проходить цей шлях на реальних сценаріях: відповіді API, обробка замовлень, валідація конфігурації, типізовані репозиторій, кеш і шина подій, скінченні автомати.
Аудиторія
Знаєте основи TypeScript
Навчитеся писати узагальнені функції та будувати утилітні, мапові й умовні типи з infer на основі наявних.
Працюєте з даними з API
Перевірятимете зовнішні дані власними type guards і функціями-твердженнями, а стан описуватимете дискримінованими union.
Пишете повторно використовувані API
Типізуватимете перевантаження, функції вищого порядку, абстрактні класи, репозиторій, кеш і шину подій.
Курс спирається на знання, позначені нижче як обов’язкові.
Потрібно знати
Курс «TypeScript: основи» або впевнене знання базових типів, інтерфейсів, union-типів, звуження і класів.
Якщо цих знань ще немає — пройдіть курси за порядком:
Результат
розуміти сумісність типів: структурна типізація, підтипи, unknown і never
писати узагальнені функції, типи й класи з обмеженнями, keyof та індексним доступом
будувати нові типи з наявних: утилітні, мапові й умовні типи, 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, інциденти, дипфейки і безпечна робота з ШІ.
Залиште запитання — підкажемо, чи підходить вам курс і з чого краще почати.