TypeScript
Types that catch bugs instead of fighting you.
intermediate · 6–10 weeks · 3 milestones · 9 topics
Tap a box to open it · right-click to mark done
Tap a box to open it
Full outline
From basic annotations to the type-level programming that powers modern libraries — plus the config, tooling and migration strategy for real codebases.
01Core Types
The 80% you use daily.
- Primitives & objects
Annotating values without over-annotating — let inference do the work.
- Unions & narrowing
Where TypeScript starts modelling real program states rather than just shapes.
- Functions & classes
Typing behaviour, including the awkward parts.
- Primitives & objects
02Type-Level Power
Where TypeScript becomes a language of its own.
- Generics
Reusable types that preserve information instead of erasing it to any.
- Utility & mapped types
Deriving types from other types instead of duplicating them.
- Conditional & template literal types
The advanced tier — powerful, and easy to overdo.
- Generics
03Real Projects
Config, tooling, migration.
- tsconfig & strictness
Strict mode is where the value is. Turn it on from day one.
- Runtime validation
Types vanish at runtime. Anything crossing a boundary needs checking.
- Migrating a JS codebase
Incremental, file by file, without a six-month freeze.
- tsconfig & strictness