type ArrayItemTypes = T extends (infer U)[] ? U : never