Intermediate
Advanced generics, template literals, infer, recursive types, mixins, decorators, .d.ts files, module augmentation, async patterns, error handling, index signatures, discriminated unions, tsconfig, runtime validation, and best practices.
Progress: 0 / 15 topics completed
Advanced Type System
Advanced Generics
Master generic constraints, default type parameters, multiple type variables, and higher-order generic patterns.
Template Literal Types (Advanced)
Build powerful string union types, remap object keys, and use built-in string manipulation types to enforce naming conventions at the type level.
The `infer` Keyword & Type Extraction
Use `infer` to extract sub-types from complex types - function parameters, return values, Promise resolutions, and more.
Recursive Types
Model trees, nested structures, and linked lists at the type level using self-referential type aliases and recursive conditional types.
Classes & Decorators
Advanced Classes & Mixins
Go beyond basic classes with abstract classes, static blocks, private fields, and the mixin pattern for reusable, composable behaviors.
Decorators
Add metadata and behavior to classes, methods, and properties using TypeScript decorators - the foundation of frameworks like Angular and NestJS.
Modules & Declaration Files
Declaration Files & @types
Understand how .d.ts files work, when to write your own, and how DefinitelyTyped and @types packages bring type safety to the JavaScript ecosystem.
Module Augmentation & Declaration Merging
Extend third-party types, merge interfaces across files, and augment existing modules without modifying their source code.
Async & Error Handling
Async TypeScript
Type async functions, Promise chains, Promise.all, async generators, and handle async error types correctly in TypeScript.
Error Handling Patterns
Design type-safe error handling with Result types, discriminated error unions, custom error classes, and the never-throw philosophy.
TypeScript in Practice
Index Signatures & Record Types
Model dynamic keys with index signatures, use Record<K,V> for key-value maps, and understand when to choose each approach.
Discriminated Unions (Advanced)
Model state machines, request/response cycles, and complex domain states using exhaustive discriminated unions and the satisfies operator.
tsconfig.json Deep Dive
Master the most important TypeScript compiler options - strict mode flags, module settings, path aliases, and project references.
Type-Safe APIs & Runtime Validation
Bridge the gap between TypeScript compile-time safety and runtime data with typed fetch, schema validation (Zod), and branded types.
TypeScript Best Practices
Consolidate intermediate-level knowledge with practical patterns: when to use `unknown` over `any`, type-driven development, and structuring TypeScript projects.