Type aliases give a name to any type so you can reuse it throughout your code:
type UserId = string | number;
type Status = 'idle' | 'loading' | 'success' | 'error';
type Point = { x: number; y: number };This improves readability, reduces duplication, and keeps APIs consistent.
You can create aliases for:
string | number or 'red' | 'green' | 'blue'{ id: number; name: string }[number, number] for fixed-length arrays(x: number) => numberIn this category, you'll:
Keep implementations simple, avoid mutation unless required, and use narrowing to work safely with unions.