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