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