Angular pasar múltiples plantillas a Componente

Estoy tratando de crear un componente que acepte múltiples plantillas como entradas. Este es el ejemplo que tengo:

@Component({
    selector: 'data-list',
    styles: [
        require('./data-list.component.scss')
    ],
    template: `
        <ng-template
            *ngFor="let item of itemsData"
            ngFor let-item [ngForOf]="[item]" [ngForTemplate]="itemTemplate"
        ></ng-template>
    `
})

export class DataListComponent {
    @Input() itemsData: any[];
    @ContentChild(TemplateRef) itemTemplate: TemplateRef<ElementRef>;
}

Como puede ver, estoy probando un componente bastante simple. Este componente simplemente acepta los datos de los elementos que se mostrarán, así como la plantilla del elemento. Este componente se puede usar así:

<data-list [itemsData]="data">
    <ng-template let-item>
        <h1>{{ item.header }}</h1>
        <div>{{ item.content }}</div>
    </ng-template>
</data-list>

Como se muestra arriba, paso la plantilla usandong-content que luego lee elDataListComponent con@ContentChild(TemplateRef) itemTemplate: TemplateRef<ElementRef>;.

Mi pregunta es si es posible pasar múltiples plantillas a un componente.

Como ejemplo, se pasaría la plantilla para los elementos, pero se necesita una plantilla diferente en caso de que sea el primer elemento. Esto significaría que la verificación del primer elemento se realizará en elDataListComponent pero luego use una plantilla especificada por el componente que la usa.

Ejemplo simple:

Puedo hacer algo así para atender esto:

@Component({
    selector: 'data-list',
    styles: [
        require('./data-list.component.scss')
    ],
    template: `
        <span *ngFor="let item of itemsData; let i = index" >
            <ng-template *ngIf="i > 0; else nextTmpl"
                ngFor let-item [ngForOf]="[item]" [ngForTemplate]="itemTemplate"
            ></ng-template>
        </span>
        <ng-template #nextTmpl>
            Next
        </ng-template>
    `
})

Sin embargo, así, la "Plantilla siguiente" no está especificada por el componente que utilizaDataListComponent y por lo tanto siempre será la misma plantilla.

Respuestas a la pregunta(2)

Su respuesta a la pregunta