TypeScript just got discriminated unions
github.com