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.