TypeScript for Application Developers
Go past annotations. Structural typing, narrowing, generics, and the type-level tools that make invalid states impossible.
- Intermediate
- 1h 55m
- 4 modules
- 12 lessons
- 22.1k students
Taught by Daniel Okafor · TypeScript, PostgreSQL, API design, Data modelling

What you’ll learn
Make invalid states unrepresentable
Model your domain so the compiler rejects the combinations that should never happen.
Write real generics
Build reusable functions and components that keep type information instead of erasing it.
Use the type-level toolkit
Apply conditional, mapped, and template literal types where they earn their complexity.
Type the boundaries
Validate and type the data crossing into your app, so external data stops being an any.
Course content
4 modules · 1h 55m
01How the Type System ThinksThe mental model underneath everything else: structural compatibility, unions, and narrowing.28m
02GenericsWriting code that keeps type information flowing through it instead of collapsing to any.24m
03Advanced TypesThe type-level features that let a type be computed from another type, and the judgement to use them sparingly.40m
04TypeScript in PracticeConfiguration, external data, and the places typed code meets the untyped world.23m