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 typesUppercase<T>, Lowercase<T>, Capitalize<T>, Uncapitalize<T>
  • Recursive types — types that reference themselves

Key Patterns

PatternUse Case
{ [K in keyof T]: boolean }All props become boolean
&#123; [K in keyof T as \get${Capitalize<K>}`]: ... }`Auto-generate getter names
&#123; [K in keyof T]-?: T[K] &#125;Make all required
&#123; -readonly [K in keyof T]: T[K] &#125;Make all mutable