title: Transform union type to intersection type
body: <p>Is there a way to transform a union type into an intersection type :</p>
  
  <pre><code>type FunctionUnion = () =&gt; void | (p: string) =&gt; void
  type FunctionIntersection = () =&gt; void &amp; (p: string) =&gt; void
  </code></pre>
  
  <p>I would like to apply a transformation to <code>FunctionUnion</code> to get <code>FunctionIntersection</code></p>