Angular why asterisk (*)
<p>In Angular document, <a href="https://angular.io/docs/ts/latest/guide/template-syntax.html#!#star-template" rel="noreferrer">* and template</a>, we know that the *ngIf, *ngSwitch, *ngFor can be expanded to ng-template tag.  My question is:</p>
<p>I think the <code>ngIf</code> or <code>ngFor</code> without <code>*</code> can also be translated and expanded to template tag by Angular engine.</p>
<p>The following code</p>
<pre class="lang-html prettyprint-override"><code>&lt;hero-detail *ngIf=&quot;currentHero&quot; [hero]=&quot;currentHero&quot;&gt;&lt;/hero-detail&gt;
</code></pre>
<p>would be the same as</p>
<pre class="lang-html prettyprint-override"><code>&lt;ng-template [ngIf]=&quot;currentHero&quot;&gt;
  &lt;hero-detail [hero]=&quot;currentHero&quot;&gt;&lt;/hero-detail&gt;
&lt;/ng-template&gt;
</code></pre>
<p>So why bother designing a strange symbol asterisk(<code>*</code>) in Angular?</p>