Fundamentals
Type System Basics beginner Learn the foundation of TypeScript's structural type system. Understand primitives, union types, intersection types, and the difference between type annotations and inference. Stop using "any" as a crutch — let the compiler do its job.
Language TypeScript 8h Fundamentals
Interfaces & Type Aliases beginner Know when to use interfaces vs type aliases and why it matters. Interfaces are extendable and mergeable, types are composable. Use interfaces for object shapes you expect others to implement, types for everything else.
Language TypeScript 8h Core Typing
Functions & Overloads intermediate Type function parameters, return values, and rest arguments correctly. Master function overloads for APIs that accept different argument shapes and return different types. Understand the difference between call signatures and implementation signatures.
Language TypeScript 8h Core Typing
Enums, Tuples & Literal Types intermediate Use const enums for zero-runtime overhead, tuples for fixed-length typed arrays, and literal types for exact value constraints. Prefer "as const" assertions over enums in most cases — they produce narrower types and no extra JavaScript.
Language TypeScript 6h Generics are the backbone of reusable type-safe code. Learn generic functions, classes, and constraints. Understand when to use "extends" to narrow generic parameters and how to provide good defaults. Avoid over-genericizing — if a type parameter is only used once, you probably don't need it.
Language TypeScript 12h Intermediate
Utility Types intermediate Master the built-in utility types that save you from writing boilerplate. Partial, Required, Pick, Omit, Record, Readonly, ReturnType, and Parameters cover 90% of type transformation needs. Learn to compose them for complex transformations.
Language TypeScript 8h Push the type system to its limits with conditional types, mapped types, template literal types, and infer keyword patterns. These are the tools library authors use to create developer-friendly APIs. Understand distributive conditional types and how to control their behavior.
Language TypeScript 14h Advanced
Type Narrowing & Guards advanced Make the compiler understand your runtime checks. Use typeof, instanceof, discriminated unions, and custom type guard functions to narrow types safely. Well-designed discriminated unions eliminate entire categories of null-check bugs and make impossible states unrepresentable.
Language TypeScript 8h Production
Declaration Files & Module Systems advanced Write .d.ts files for untyped libraries, understand module resolution strategies, and configure path aliases. Know the difference between ambient declarations and module augmentation. If you maintain a library, learn to emit clean declaration files.
Language TypeScript 8h Production
TypeScript Configuration & Migration advanced Master tsconfig.json options that actually matter — strict mode, module resolution, target, lib, and paths. Learn to migrate a JavaScript codebase incrementally using allowJs and checkJs. Configure TypeScript for different targets like Node.js, browsers, and bundlers.
Language TypeScript 8h