export function castArray(x: undefined | T | T[]): T[] { if (x === undefined) return [] if (Array.isArray(x)) return x return [x] } export type ArrayItem = A extends (infer V)[] ? V : never