Omit for Discriminated Unions in TypeScript

Why TypeScript’s built-in Omit breaks discriminated unions, and how a distributive version preserves them.