title: Angular 2 bootstrap function gives error "Argument type AppComponent is not assignable to parameter type Type"
body: <p>Here is my first simple <code>Hello World</code> angular 2 app from <a href="https://angular.io/docs/ts/latest/quickstart.html" rel="noreferrer">Angular 2 quick start guide</a>.</p>
  
  <pre><code>import {Component} from 'angular2/core';
  import {bootstrap} from 'angular2/platform/browser';
  @Component({
      selector: 'ng2-app',
      template: '&lt;h1&gt;My first Angular 2 App&lt;/h1&gt;'
  })
  export class AppComponent { }
  
  
  bootstrap(AppComponent);
  </code></pre>
  
  <p>The application runs fine when I run with <code>npm start</code> but my IntelliJ IDE is showing error in the line with <code>bootstrap(AppComponent)</code></p>
  
  <blockquote>
    <p>Argument type <em>AppComponent</em> is not assignable to parameter type <em>Type</em></p>
  </blockquote>
  
  <p><a href="https://i.stack.imgur.com/5xWna.png" rel="noreferrer"><img src="https://i.stack.imgur.com/5xWna.png" alt="Angular 2 typescript warning"></a></p>
  
  <p>Looking at the <code>bootstrap</code> function declaration, <code>AppComponent</code> needs to extends <code>Type</code>.</p>
  
  <pre><code>export declare function bootstrap(appComponentType: Type, customProviders?: Array&lt;any&gt;): Promise&lt;ComponentRef&gt;;
  </code></pre>
  
  <p>My question is:</p>
  
  <p><strong>Is it expected for Angular components to extend <code>Type</code>?</strong></p>