Mastering TypeScript: From Fundamentals to Type-Level Programming & Functional Effect-TS
Master TypeScript from the ground up to advanced type-level metaprogramming and functional architecture powered by Effect-TS. Modeled after the world-class TotalTypeScript curriculum by Matt Pocock.
(COMING SOON) Moving from object-oriented patterns to functional programming, leveraging pure algebraic data types and the immensely powerful Effect-TS ecosystem.
An in-depth analysis of TypeScript’s foundational object utility types. Learn how Partial<T>, Required<T>, and Readonly<T> transform property modifiers, their under-the-hood mapped type implementations (?, -?, readonly), and shallow immutability limits.
An in-depth guide to using multiple generic parameters in TypeScript. Learn dependent type parameter relationships, object merging signatures, and how to solve the Partial Generic Inference Trap using higher-order curried functions.
An in-depth guide to Generic Constraints in TypeScript. Learn why unconstrained <T> limits property access, how <T extends Shape> establishes lower type bounds, why generic constraints outperform interface parameter types, and how to constrain keys using <K extends keyof T>.
An in-depth introduction to Generics in TypeScript. Learn how type parameters (<T>) bridge reusable logic with strict type safety, generic type inference, generic interfaces (ApiResponse<T>), and generic classes.
An in-depth guide to the typeof operator in Type Space. Learn the distinction between Value Space and Type Space, reverse-engineering types from runtime objects and functions, combining keyof typeof, and deriving single-source-of-truth types.
An exhaustive guide to the keyof operator in TypeScript. Learn how keyof extracts property key unions from object interfaces, array/tuple types, index signatures, and how to combine keyof with Generics to build type-safe property accessors.
An in-depth guide to Indexed Access Types (T[K]). Learn how to look up specific property types from object shapes, perform nested indexing, index with unions T['a' | 'b'], extract array element types using [number], and enforce DRY type architectures.
An exhaustive comparison of interface vs type in TypeScript. Understand Declaration Merging, extends vs Intersections (&), compiler performance during type checking, and the precise decision matrix for choosing between them.
An exhaustive analysis of Const Assertions (as const). Learn the 3 transformation rules of const assertions, deep recursive read-only object properties, converting arrays into readonly tuples, and deriving union types dynamically using typeof ARRAY[number].