Back to Blog
TypeScriptDiscriminated UnionsTypesPatterns

TypeScript Discriminated Unions Guide

Master TypeScript discriminated unions for type-safe handling of multiple variants.

B
Bootspring Team
Engineering
July 31, 2018
7 min read

Discriminated unions (tagged unions) use a common property to distinguish between variants, enabling exhaustive type checking.

Basic Discriminated Union#

Loading code block...

Exhaustiveness Checking#

Loading code block...

API Response Patterns#

Loading code block...

State Machine Pattern#

Loading code block...

Action Types (Redux-style)#

Loading code block...

Validation Results#

Loading code block...

Nullable Patterns#

Loading code block...

Event System#

Loading code block...

Combining with Generics#

Loading code block...

Best Practices#

Loading code block...

Conclusion#

Discriminated unions provide type-safe handling of multiple variants using a common discriminant property. They're perfect for state machines, API responses, Redux actions, and any scenario with mutually exclusive states. Use exhaustiveness checking with never to catch unhandled cases. The pattern integrates well with TypeScript's type narrowing, giving you precise types within each branch of your conditional logic.

Share this article

Help spread the word about Bootspring

Related articles