Docs
/
TypeScript
Chapter 11

11 — Generics

Core Concepts

  • Generic functionsfunction fn<T>(arg: T): T
  • Generic interfacesinterface Box<T> { value: T }
  • Generic classesclass Stack<T> { ... }
  • Constraints<T extends SomeType> restricts what T can be
  • Default type params<T = string> fallback if not specified
  • Multiple type params<K, V> for key-value patterns
  • Generic utility patterns — creating reusable type-safe abstractions

When to Use Generics

ScenarioExample
Same logic, different typesidentity<T>(val: T): T
CollectionsStack<T>, List<T>, Map<K, V>
API responsesApiResponse<T>
Factory functionscreate<T>(config): T
Type relationshipsInput type determines output type