Lets assume I have component with generic type that displays data list:
interface DataProvider<T> {
getData(): T[];
}
...
template: '<div *vsFor="let item in dataProvider.getData()">
<ng-container *ngTemplateOutlet="rowTemplate; context:{item: item}">
</ng-container>
</div>'
...
class AwesomeList<T> {
@Input dataProvider: DataProvider<T>;
@Input rowTemplate: TemplateRef<T>;
}
Some problem appears, when I use it:
<awesome-list [dataProvider]="provider" [rowTemplate]="template"></awesome-list>
<ng-template #template let-object="item">
{{object.name}} // Here, type of object is unclear (?)
</ng-template>
So is any way to defined object/item class here?
P.S. All this work ok, but I want to end with strict types, autocomplete in IDE, etc.