Utility and Mapped Types
TypeScript's type system is itself a small programming language — you can compute new types from existing ones. The built-in utility types (`Partial`, `Pick`, `Omit`, `Record`) are the everyday face of this; underneath, `keyof`, mapped types, conditional types, and template literal types are the primitives that make them possible. Learning to derive types instead of hand-writing them is what separates fluent TypeScript from annotation-copying.
TypeScript's type system is itself a small programming language — you can compute new types from existing ones. The built-in utility types (Partial, Pick, Omit, Record) are the everyday face; underneath, keyof, mapped types, conditional types, and template literals are the primitives. Learning to derive types instead of hand-writing them is what separates fluent TypeScript.