Typescript typically simplifies types if possible:
type A = string | 'literal'; // => string
type B = number | 0; // => number
However, why does it fail to simplify array unions:
type C = (1 | 2)[] | number[]; // => number[] | (1 | 2)[] => Expected: number[]
type D = string[] | 'literal'[]; // => string[] | 'literal'[] => Expected: string[]
Why doesn't TypeScript combine the type into its supertype.