TypeScript course — from zero to a program that holds up
By Dorian Chávez, founder of Hábil and integration architect. This is how we teach those who build systems that cannot fail.
Who it is for: anyone who has already taken this house's Go course, or who programs in JavaScript and wants to stop discovering errors in production. No prior experience with types is assumed: each concept is explained when it appears, and it is explained why it exists, not only how it is written.
What you will know by the end: how to write a complete program with types, understand what you wrote, and be able to explain it to someone else.
What you need before starting: a computer with Linux Mint and knowing how to open a terminal. Lesson 1 installs everything from scratch.
The project you are going to build
The revisor: an API that queries a list of services at the same time and a web dashboard that shows the report, with the types shared between the two. It is the same problem as in the Go course, now solved in TypeScript.
The ten lessons
| Lesson | What you build | What you learn | |
|---|---|---|---|
| 0 | What TypeScript is and is NOT | nothing yet (reading) | JS vs TS; types are erased at runtime; what they protect and what they do not; why strict |
| 1 | Installing TypeScript on your Linux Mint | the environment and your first program | Node LTS, tsc, editor, strict tsconfig, running and debugging |
| 2 | Types, functions, and inference | the revisor's base functions |
primitives, inference, unions and literals, narrowing, null and undefined |
| 3 | Objects and the data model | the Servicio / Estado model |
type vs interface, structural typing, readonly, discriminated unions |
| 4 | Collections, generics, and errors | the list of services and the report | arrays, Map/Set, generics, utility types, errors |
| 5 | Asynchrony: check everything at once | the concurrent revisor |
event loop, promises, async/await, Promise.all vs allSettled, AbortController |
| 6 | Data that arrives from outside | validation of configuration and responses | validating at the boundary; types derived from the schema |
| 7 | Modules, tests, and quality | the real project, with tests | ESM modules, table-driven tests, lint and formatting |
| 8 | The server | the revisor's HTTP API |
HTTP server, typed routes, JSON, configuration, graceful shutdown |
| 9 | The screen and the finished program | the web dashboard and the final package | React with TypeScript and hooks, shared types, XSS, compiling and publishing |
At the end of each lesson there are exercises with their solutions. And the logbook is yours: write down there what was hard for you.
Lessons
- Lesson 0 — What TypeScript is and what it is NOT
- Lesson 1 — Installing TypeScript on your Linux Mint
- Lesson 2 — Types, functions, and inference
- Lesson 3 — Objects and the data model
- Lesson 4 — Collections, generics, and errors
- Lesson 5 — Asynchrony: check everything at once
- Lesson 6 — Data that arrives from outside
- Lesson 7 — Modules, tests, and quality
- Lesson 8 — The server
- Lesson 9 — The screen and the finished program