TypeScript Deep Dive
Generics, utility types, conditional types, mapped types, Zod, type guards and module resolution — mastering the TypeScript type system.
12 articlesin TypeScript Deep Dive
tsconfig.json: The Complete Guide
Compiler options, strict mode, target vs lib, project references, and a pragmatic strategy for adopting strict mode on a legacy codebase.
Template Literal Types Guide
String manipulation at the type level — pattern matching, type-safe routes, and event name validation.
Module Resolution Demystified
Node, Node16, Bundler — understand how TypeScript actually finds and resolves your import paths, and why it breaks at runtime anyway.
TypeScript Decorators: Legacy vs Modern
TC39 Stage 3 decorators vs legacy experimentalDecorators — class, method, and field decorators for metadata and cross-cutting concerns.
Declaration Files: The Complete Guide
.d.ts files and @types — type definitions for JavaScript libraries, ambient declarations, and module augmentation.
Assertion Functions in TypeScript
asserts condition — functions that narrow types by throwing, for fail-fast validation patterns at function boundaries.
TypeScript Mapped Types and Template Literals: Transforming Shapes at the Type Level
Mapped types, key remapping, template literal types, and combining them with conditional types to build transformation layers with zero runtime cost.
TypeScript Conditional Types: Type-Level Logic That Scales
Conditional types, the infer keyword, distributive behaviour, and recursive types — the foundation of every advanced TypeScript utility.
Zod: Schema-First Validation That Earns Its Type Safety
Parse API responses, form inputs, and env variables with Zod schemas that double as TypeScript types — no more manual type assertions at system boundaries.
TypeScript Type Guards: Narrowing Without the Noise
typeof, instanceof, in, discriminated unions, custom type predicates, and assertion functions — the narrowing toolkit that keeps runtime errors out of production.
TypeScript Utility Types: The Production Toolkit
Partial, Required, Pick, Omit, Record, Extract, Exclude, ReturnType — when to use each and how to compose them for real-world type transformations.
TypeScript Generics: Constraints, Variance, and Inference
Type parameters, constraints, conditional inference, and the patterns that make generics actually useful in production TypeScript.

