Курс по TypeScript — от нула до програма, която се държи
От Dorian Chávez, основател на Hábil и архитект на интеграции. Така обучаваме тези, които изграждат системи, които не могат да се провалят.
За кого е: за този, който вече е минал курса по Go на тази къща, или който програмира на JavaScript и иска да престане да открива грешките в продукция. Не се предполага предишен опит с типове: всяко понятие се обяснява, когато се появи, и се обяснява защо съществува, а не само как се пише.
Какво ще умееш накрая: да напишеш цялостна програма с типове, да разбираш това, което си написал, и да можеш да го обясниш на някой друг.
Какво ти трябва, преди да започнеш: компютър с Linux Mint и да умееш да отваряш терминал. Урок 1 инсталира всичко от нулата.
Проектът, който ще изградиш
revisor: API, което проверява списък от услуги едновременно, и уеб табло, което показва отчета, със споделени типове между двете. Това е същият проблем като в курса по Go, решен сега в TypeScript.
Десетте урока
| Урок | Какво изграждаш | Какво научаваш | |
|---|---|---|---|
| 0 | Какво е TypeScript и какво НЕ е | още нищо (четене) | JS срещу TS; типовете се изтриват при изпълнение; какво пазят и какво не; защо strict |
| 1 | Инсталиране на TypeScript на твоя Linux Mint | средата и първата ти програма | Node LTS, tsc, редактор, строг tsconfig, изпълнение и дебъгване |
| 2 | Типове, функции и извеждане | базовите функции на revisor |
примитиви, извеждане, обединения и литерали, стесняване на типа (narrowing), null и undefined |
| 3 | Обекти и моделът на данните | модела Servicio / Estado |
type срещу interface, структурно типизиране, readonly, дискриминирани обединения |
| 4 | Колекции, генерици и грешки | списъка с услуги и отчета | масиви, Map/Set, генерици, помощни типове, грешки |
| 5 | Асинхронност: да проверява всичко едновременно | едновременния revisor |
цикъл на събитията (event loop), обещания, async/await, Promise.all срещу allSettled, AbortController |
| 6 | Данни, които идват отвън | валидация на конфигурация и отговори | валидиране на границата; типове, изведени от схемата |
| 7 | Модули, тестове и качество | истинския проект, с тестове | ES модули (ESM), тестове с таблица от случаи, linter и форматиране |
| 8 | Сървърът | HTTP API на revisor |
HTTP сървър, типизирани маршрути, JSON, конфигурация, коректно спиране |
| 9 | Екранът и завършената програма | уеб таблото и крайния пакет | React с TypeScript и hooks, споделени типове, XSS, компилиране и публикуване |
В края на всеки урок има упражнения с техните решения. А дневникът е твой: записвай там това, което ти е костало усилие.
Уроци
- Урок 0 — Какво е TypeScript и какво НЕ е
- Урок 1 — Инсталиране на TypeScript на твоя Linux Mint
- Урок 2 — Типове, функции и извеждане
- Урок 3 — Обекти и моделът на данните
- Урок 4 — Колекции, генерици и грешки
- Урок 5 — Асинхронност: да проверява всичко едновременно
- Урок 6 — Данни, които идват отвън
- Урок 7 — Модули, тестове и качество
- Урок 8 — Сървърът
- Урок 9 — Екранът и завършената програма