title: Interface typing array with multiple possible object types
body: <p>I have an interface that contains a property which is an array containing 2 different possible object types:</p>
  
  <pre><code>&lt;Type&gt;FormerComponent and FormerGenericComponent
  </code></pre>
  
  <p>Here are my interfaces</p>
  
  <pre><code>interface FormerConfigColumn {
      container: ViewContainerRef
      components?: Type&lt;FormerComponent&gt;[]|FormerGenericComponent[];
  }
  
  interface FormerGenericComponent {
      component: Type&lt;FormerComponent&gt;;
  }
  </code></pre>
  
  <p>The above doesn't work the way I would like it to. I think the above defines an array containing only <code>Type&lt;FormerComponent&gt;</code>s or only <code>FormerGenericComponent</code>s</p>
  
  <p>I want FormerConfigColumn.components to contain an array of objects, and said objects can <strong>either</strong> be <code>Type&lt;FormerComponent&gt;</code> <strong>or</strong> <code>FormerGenericComponent</code>.</p>
  
  <p>How can I do this?</p>
  
  <p>Thanks!</p>