export type ItemOrSelfType<T> = T extends string
  ? T
  : T extends Iterable<infer R>
  ? ItemOrSelfType<R>
  : T;