TypeScript Type Aliases Power
Master type aliases: unions, intersections, and building expressive domain types.
Type aliases let you name any type, not just objects. ## Union types ```ts type Status = "loading" | "success" | "error"; let state: Status = "loading"; ``` ## Intersection types ```ts type A = { id: number }; type B = { name: string }; type AB = A & B; const obj: AB = { id: 1, name: "Tom" }; ``` ## Alias for functions ```ts type Logger = (msg: string) => void; const log: Logger = (m) => console.log(m); ``` ## Domain modeling example ```ts type UserId = number; type Email = string; type User = { id: UserId; email: Email; }; ``` ## Graph ```mermaid flowchart LR A[Union] --> B[One of many] C[Intersection] --> D[Combine types] ``` ## Remember - Aliases can represent anything - Use unions for choices - Use intersections to combine