Transform union type to intersection type : <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>
