S
Seoffix.com
Sign In Get Pro Membership
TypeScript Intermediate
Estimated Duration: 20 min

TypeScript: Discriminated Unions for Type-Safe API Gateways

Model robust API results using TypeScript discriminated unions without optional field bugs.

Robust Error Handling with Discriminated Unions


In traditional JavaScript, API functions often return objects with ambiguous optional fields:
{ success: boolean, data?: T, error?: string }

If success is true, developers must still check if data is undefined.

By using a **Discriminated Union** with a shared literal discriminator (status: 'success' | 'error'), TypeScript automatically narrows types and guarantees data exists when status === 'success'.
Target Output
SUCCESS: {"score":98}
ERROR: Rate limit exceeded
Need a Hint?
  • Use a switch (res.status) block
  • Inside case 'success': res.data is guaranteed to exist
  • Inside case 'error': res.message is guaranteed to exist
solution.js
Terminal Output Ready
Click "Run Code & Test" to execute your solution.