TypeScript Learning Roadmap
Your complete learning path for TypeScript — from basic type annotations to advanced conditional types, mapped types, and project configuration. Follow the stages in order or jump to specific topics.
info
Master the basics of static typing — why TypeScript exists, how to set it up, and core type annotations.
Introduction to TypeScript, installation, tsconfig setup, and compiling your first program
Primitive types, arrays, tuples, object types, union types, and explicit type annotations
How TypeScript infers types automatically, when to annotate explicitly, and best practices
Literal types, union types, discriminated unions, and narrowing with type guards
Numeric and string enums, const enums, reverse mappings, and when to use enums vs unions
Type functions properly, use overloads, and unlock the power of generics for reusable code.
Function type annotations, return types, void, never, optional and default parameters
Multiple overload signatures, implementation signatures, and when to use overloads vs unions
Generic functions, generic interfaces, constraints, defaults, and real-world generic patterns
Model complex data with interfaces, type aliases, and utility types.
Interface declarations, extending interfaces, merging declarations, and interface vs type
The type keyword, intersection types, complex type compositions, and type-level programming
Partial, Required, Pick, Omit, Record, Readonly, ReturnType, Parameters, and built-in helpers
Apply TypeScript's type system to object-oriented patterns with classes, access modifiers, and abstractions.
Unlock the full power of TypeScript's type system with conditional types, mapped types, and template literals.
Conditional type logic, the infer keyword, distributive conditional types, and type-level branching
Mapping over types with key remapping, adding/removing modifiers, and creating flexible transformations
Template literal types for string manipulation, type-safe event names, and SQL query types
typeof, instanceof, in, custom type guards, assertion functions, and narrowing patterns
Configure TypeScript projects, write declaration files, and manage multi-package workspaces.
Compiler options, strict mode, module resolution, paths, project references, and recommended configs
.d.ts files, ambient declarations, module augmentation, and DefinitelyTyped contributions
Multi-package projects, incremental compilation, build modes, and monorepo TypeScript setup