Typscript Merge Union Type Requisiten

type UnionToIntersection<U> =
    (U extends any ? (k: U) => void : never) extends
    ((k: infer I) => void) ? I : never
florinrelea