Docs
/
TypeScript
Chapter 14
14 — Conditional Types & infer
Core Concepts
- Conditional types —
T extends U ? X : Y— type-level if/else - infer keyword — extract a type from within a conditional check
- Distributive conditionals — unions are distributed automatically
- Nested conditionals — chain multiple conditions
- Type-level programming — build complex types from simpler ones
Key Patterns
| Pattern | What It Does |
|---|---|
T extends string ? A : B | Branch based on type |
T extends (infer U)[] ? U : never | Extract element type |
T extends (...args: infer P) => any ? P : never | Extract params |
T extends Promise<infer R> ? R : T | Unwrap Promise |