Docs
/
TypeScript
Chapter 13
13 — Mapped Types & Template Literal Types
Core Concepts
- Mapped types — transform every property in a type:
{ [K in keyof T]: ... } - Key remapping — rename keys with
as:{ [K in keyof T as NewKey]: ... } - Modifier removal —
-readonly,-?to remove modifiers - Template literal types —
\${A}-${B}`` creates string literal unions - Intrinsic string types —
Uppercase<T>,Lowercase<T>,Capitalize<T>,Uncapitalize<T> - Recursive types — types that reference themselves
Key Patterns
| Pattern | Use Case |
|---|---|
{ [K in keyof T]: boolean } | All props become boolean |
{ [K in keyof T as \get${Capitalize<K>}`]: ... }` | Auto-generate getter names |
{ [K in keyof T]-?: T[K] } | Make all required |
{ -readonly [K in keyof T]: T[K] } | Make all mutable |