Docs
/
TypeScript
Chapter 11
11 — Generics
Core Concepts
- Generic functions —
function fn<T>(arg: T): T - Generic interfaces —
interface Box<T> { value: T } - Generic classes —
class 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
| Scenario | Example |
|---|---|
| Same logic, different types | identity<T>(val: T): T |
| Collections | Stack<T>, List<T>, Map<K, V> |
| API responses | ApiResponse<T> |
| Factory functions | create<T>(config): T |
| Type relationships | Input type determines output type |