TypeScript Programming Lessons
Choose your path and start learning TypeScript programming step by step.
basics
Introduction to TypeScript
Learn the basics of TypeScript and why it's the preferred choice for building scalable applications
Variables and Types
Learn about variables, type annotations, and TypeScript's powerful type system
Functions
Learn how to define and use functions with TypeScript's powerful type system
Control Flow
Learn about conditional statements, loops, and how to control program execution in TypeScript
Data Structures
Learn about arrays, objects, tuples, and other data structures in TypeScript
Enums And Constants
Learn how to use TypeScript enums and const assertions to create named, type-safe constants in your applications
Config And Tsconfig
Learn how tsconfig.json controls your TypeScript project — from strict mode and compiler targets to path aliases and essential compiler flags — so you can tune the type system to match your codebase's exact needs
intermediate
Interfaces and Types
Master the differences between interfaces and type aliases, extending, intersection types, and declaration merging
Generics
Write reusable, type-safe code with generic functions, interfaces, classes, and constraints
Modules
Organize your code with ES modules, named and default exports, re-exports, and barrel files
Error Handling
Learn robust error handling with try/catch, custom error classes, the Result pattern, and type narrowing
Utility Types
Master TypeScript's built-in utility types like Partial, Pick, Omit, Record, and mapped types
Type Narrowing
Learn how TypeScript narrows union types using typeof, instanceof, in, discriminated unions, and user-defined type guards
Classes And OOP
Learn how to model real-world concepts using TypeScript classes, constructors, inheritance, access modifiers, and interfaces
Async TypeScript
Master asynchronous programming in TypeScript using Promises, async/await, and typed error handling to write non-blocking, readable code
Type-Safe APIs
Learn how to model API responses, build generic fetch wrappers, and handle errors safely using TypeScript's type system — so your data contracts are enforced at compile time, not discovered at runtime
Debugging TypeScript
Learn how to read TypeScript error messages, use the type system as a debugging tool, write exhaustiveness checks with never, and apply practical runtime debugging techniques to catch bugs before they reach production
advanced
Decorators
Learn about TypeScript decorators for adding metadata and behavior to classes, methods, and properties
Testing
Write type-safe tests with assertion patterns, mocking, and test organization in TypeScript
React and TypeScript
Type React components, props, hooks, events, and context with TypeScript
Advanced Patterns
Master discriminated unions, template literal types, conditional types, infer, and branded types
Capstone Project
Build a type-safe task management system combining all TypeScript concepts
Zod And Validation
Learn runtime schema validation with Zod to safely parse untrusted data, infer TypeScript types from schemas, and build bulletproof APIs and forms
Mapped Types
Learn how to transform, filter, and reshape TypeScript types programmatically using mapped types — the engine behind Partial, Required, Readonly, and Record
Next.js and TypeScript
Learn how to apply TypeScript's type system to real-world Next.js patterns — typed page props, API responses, server actions, and data fetching with generics