The following is something I know in my heart but always take a minute to reconstruct when it comes up, so I am posting it here for posterity. Typescript lets you write type C = A | B. This often feels more ergonomic than when many languages force you to tag the union. C = Either A B, then doing left a or right b, all followed by needing to unwrap the values at the usage site... it feels like busy work! Typescript's untagged unions often lead to cleaner user-side APIs that don't require boile...