TypeScript Learning Roadmap
Your complete learning path for TypeScript — from the mastery curriculum and types encyclopedia through variance, branded types, narrowing, Zod, patterns, ESLint, testing, monorepos, and migration. Follow the stages in order or jump to specific topics.
info
Mastery & Reference
~4 hoursOrient with the dual-audience mastery curriculum and keep the types encyclopedia open as a companion.
- How to Master TypeScript
Stages, checkpoints, agent curls, and verification prompts for humans and AI agents
- Complete Types Reference
Primitives, utilities, keyof/infer, mapped/conditional types, satisfies, const type params
- TypeScript 0 to Hero
Introduction, installation, tsconfig setup, and compiling your first program
- Variance
Covariance, contravariance, in/out annotations, readonly arrays as covariant
- Branded Types
Opaque/branded types, nominal patterns, Zod brand, validation boundaries
TypeScript Foundations
~5 hoursMaster the basics of static typing — annotations, inference, literals, and enums.
- Types & Annotations
Primitive types, arrays, tuples, object types, union types, and explicit type annotations
- Type Inference
How TypeScript infers types automatically, when to annotate explicitly, and best practices
- Literals & Unions
Literal types, union types, discriminated unions, and narrowing with type guards
- Enums
Numeric and string enums, const enums, reverse mappings, and when to use enums vs unions
Functions & Generics
~5 hoursType functions properly, use overloads, and unlock the power of generics for reusable code.
- Function Types
Function type annotations, return types, void, never, optional and default parameters
- Function Overloads
Multiple overload signatures, implementation signatures, and when to use overloads vs unions
- Generics
Generic functions, generic interfaces, constraints, defaults, and real-world generic patterns
Objects & Type Composition
~5 hoursModel complex data with interfaces, type aliases, and utility types.
- Interfaces
Interface declarations, extending interfaces, merging declarations, and interface vs type
- Type Aliases
The type keyword, intersection types, complex type compositions, and type-level programming
- Utility Types
Partial, Required, Pick, Omit, Record, Readonly, ReturnType, Parameters, and built-in helpers
- never & unknown
Top and bottom types, exhaustiveness checks, and safe handling of untrusted values
Classes & Modules
~4 hoursApply TypeScript to OOP patterns and modular architecture.
- Classes
Class syntax with TypeScript, typed properties, constructors, parameter properties, and methods
- Abstract Classes & Modifiers
Abstract classes, access modifiers (public/private/protected), readonly, and static members
- Modules
Resolution algorithms, path mapping, barrel exports
- Module Augmentation
Declaration merging, module/global augmentation, ambient modules
- Iteration Protocols
Iterable, iterator, async iteration, generators
Narrowing & Validation
~6 hoursProve types through control flow and validate untrusted input at runtime.
- Narrowing
Control flow analysis, type guards, assertion functions, discriminated unions
- Type Guards
typeof, instanceof, in, custom type guards, and narrowing patterns
- satisfies Operator
satisfies vs as — preserve inference while checking assignability
- Zod + TypeScript
Runtime schemas, z.infer, API/env boundaries, branded types
- Branded Types
Opaque types and nominal typing at validation boundaries
Advanced Type System
~8 hoursConditional types, mapped types, template literals, variance, and design patterns.
- Conditional Types
Conditional type logic, the infer keyword, distributive conditional types, and type-level branching
- Mapped Types
Mapping over types with key remapping, adding/removing modifiers, and creating flexible transformations
- Template Literal Types
Template literal types for string manipulation, type-safe event names, and SQL query types
- Variance
Covariance/contravariance for functions, in/out annotations, readonly arrays
- Design Patterns
Builder, Result/Either, exhaustive switches, DI typing, generic factories
Strict, React & Production
~10 hoursShip production-safe apps: strict flags, React patterns, ESLint, tests, monorepos, and migration.
- Strict Mode & Migration
Enable strict flags one-by-one and migrate JavaScript to TypeScript safely
- JS→TS Migration Playbook
allowJs, checkJs, gradual strict, converting CommonJS
- React + TypeScript
Props, hooks typing, events, generic components, and context
- typescript-eslint
Type-checked ESLint rules, ignores, and common fixes
- Testing with TypeScript
Vitest + TS, typed mocks, Testing Library, assertion helpers
- tsconfig.json
Compiler options, module resolution, paths, and recommended configs
- Declaration Files
.d.ts files, ambient declarations, module augmentation, and DefinitelyTyped
- Project References
Multi-package projects, incremental compilation, and monorepo TypeScript setup
- Monorepo TypeScript
pnpm workspaces, project references deep dive, path mapping pitfalls
- Decorators
Stage 3 decorators for classes and methods
- Best Practices
Patterns, strict config habits, and code review checklist
Community
Get help on Slack, Discord or VIP
Stuck on a guide? Join the community and ask.