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

  1. Lesson 0 — What TypeScript is and what it is NOT
  2. Lesson 1 — Installing TypeScript on your Linux Mint
  3. Lesson 2 — Types, functions, and inference
  4. Lesson 3 — Objects and the data model
  5. Lesson 4 — Collections, generics, and errors
  6. Lesson 5 — Asynchrony: check everything at once
  7. Lesson 6 — Data that arrives from outside
  8. Lesson 7 — Modules, tests, and quality
  9. Lesson 8 — The server
  10. Lesson 9 — The screen and the finished program