title: ContentChildren with multiple content types
body: <p>Hello I am currently building a table that will allow multiple column types in it. I want to be able to use this like:</p>
  
  <pre class="lang-html prettyprint-override"><code>&lt;my-table [rows]="rows"&gt;
       &lt;text-column [someParameters]="here" header="text"&gt;&lt;/text-column&gt;
       &lt;icon-column [someParameters]="here" header="icon"&gt;&lt;/icon-column&gt;
  &lt;/my-table&gt;
  </code></pre>
  
  <p><code>text-column</code> and <code>icon-column</code> are separate directives. </p>
  
  <p>I currently have an abstract class called <code>column</code> and lets say the <code>text-column</code> and the <code>icon-column</code> may look something like:</p>
  
  <pre class="lang-ts prettyprint-override"><code>   export abstract class Column
     {
         @Input() someParameters:string;
         @Input() header:string;
     }
  
     export class TextColumnDirective extends Column
     {
        //I do cool stuff here
     }
  
     export class IconColumnDirective extends Column
     {
        //I do different cool stuff   
     }
  </code></pre>
  
  <p>My table may look something like:</p>
  
  <pre class="lang-ts prettyprint-override"><code>@Component({
     selector:'my-table',
     template: `
          &lt;table&gt;
              &lt;thead&gt;
                  &lt;tr&gt;
                     &lt;th *ngFor="let column of columns"&gt;{{column.header}}&lt;/th&gt;
                  &lt;/tr&gt;
              &lt;/thead&gt;
          &lt;/table&gt;
     `
  })
  export class MyTableComponent
  {
      @ContentChildren(Column) columns:QueryList&lt;any&gt;;
  
      //I do cool stuff too
  }
  </code></pre>
  
  <p>So this approach works if I do not use an abstract and just call it with just text column like <code>@ContentChildren(TextColumnDirective) columns:QueryList&lt;any&gt;;</code>
  but only gets the text column and the same with the icon column. How can I accomplish this where I can add different types of directives for different columnTypes later?</p>