TypeScript Roadmap
Phase 1:TypeScript Basics
intermediate1 weekType Annotations
Explicit types on variables, function parameters, and return values. The foundation the rest of the type system builds on.
intermediate1 weekInterfaces & Type Aliases
Define the shape of objects. Use interface for object shapes you'll extend; use type for unions, intersections, and computed types.
intermediate1 weekUnion & Intersection Types
Union types (A | B) for values that can be one of several types; intersection types (A & B) for objects that must satisfy multiple constraints at once.
Phase 2:Generics & Advanced Types
intermediate2 weeksGenerics
Write functions and types that work across many types while preserving type information. The pattern behind most typed utility libraries.
intermediate1 weekUtility Types
Partial, Required, Pick, Omit, Record, Readonly. TypeScript ships with a library of type transformers you'll use constantly in real codebases.
intermediate1 weekDiscriminated Unions
Model state machines and tagged variants cleanly. The pattern TypeScript developers use to eliminate impossible states.
Phase 3:TypeScript in Practice
intermediate2 weeksTypeScript with React
Type component props, hooks, event handlers, and context. React with TypeScript is the default in most production frontend codebases.
intermediate2 weeksTypeScript with Node.js
Type Express routes, middleware, and database queries. Add Zod for runtime validation that keeps TypeScript honest at system boundaries.
intermediate1 weektsconfig & Strict Mode
Learn the key tsconfig.json settings and enable strict mode. Strict is non-negotiable in professional TypeScript work; it catches the most bugs.
Phase 4:Portfolio Project
intermediate3 weeksProject Scope
Build a full-stack TypeScript app: a typed Node/Express API with a React frontend. Keep scope tight: one resource (notes, tasks, bookmarks) done well is better than a half-finished ambitious project.
intermediate1 weekCode Quality
Enable strict mode and eslint-plugin-@typescript-eslint. Fix every red squiggle before calling it done. This is the bar senior developers expect from TypeScript code.
Next steps
Keep exploring
Languages in this roadmap
Other goals