title: How can I use a generic interface to enhance an existing interface with additional value types?
body: <p>I'd like to build a generic interface so that it can extend the allowed value types of a given interface. I try to illustrate this below....</p>
  <p>If I have an interface as below...</p>
  <pre><code>interface Original {
    prop1: string
    prop2: number
  }
  </code></pre>
  <p>How can I build a generic interface, let's say ExtraValueTypes&lt;T&gt; so that the result is as below?</p>
  <pre><code>type ExtraType = myType
  
  interface WithExtraValueTypes {
    prop1: string | myType
    prop2: number | myType
  }
  
  such that...
  
  ExtraValueTypes&lt;Original&gt; = WithExtraValueTypes
  </code></pre>