Discriminated Unions

Discriminated Unions (🏁 solution)
πŸ‘¨β€πŸ’Ό Perfect implementation of discriminated unions!
πŸ¦‰ This patternβ€”defining all possible states and using exhaustive switch statementsβ€”is fundamental to functional programming. It's exactly how React, Redux, and many modern libraries handle state.
This pattern is extremely common in real applications:
  • API states (loading, success, error)
  • Form states (idle, submitting, submitted, error)
  • Authentication (anonymous, authenticated, loading)
  • Payment methods (card, PayPal, crypto)
The exhaustiveness check with never ensures you can't forget to handle a case when you add a new variant. TypeScript becomes your safety net!
Notice how each function here is a pure transformation: it takes a state, inspects it, and returns a result without side effects. This is the functional patternβ€”data flows through functions, types guide your logic.

Please set the playground first

Loading "Discriminated Unions"
Loading "Discriminated Unions"