title: Is there a way to create a new type from an union type with some it's options removed?
body: <p>Let us say we have</p>
  
  <pre><code>type U = A | B | C
  </code></pre>
  
  <p>and we need type U without some of it's options</p>
  
  <pre><code>function f&lt;T option U&gt;(u: U): U without T {...}
  </code></pre>
  
  <p>How can we express that</p>
  
  <ol>
  <li>U has type union</li>
  <li>T is an option of U</li>
  <li>The returned type is like U but without some option</li>
  </ol>
  
  <p>?</p>