title: Angular 2 angular-cli AOT declare abstract class in module?
body: <p>I'm trying to get AOT compilation setup with angular-cli. I've got a directive that inherits from an abstract class, and I'm getting an error during compilation that angular can't determine what module the abstract class belongs to. I can't add it to the declarations array of the NgModule, so what's the right way to go about this? My code structure looks like this,</p>
  
  <pre><code>//...imports
  export abstract class TutorialDirective  {
      //...base class logic
  }
  
  @Directive({
      selector: '[tut]',
      exportAs: 'tut'
  })
  export class DefaultTutorialDirective extends TutorialDirective {
      //...calls into the base class for some shared stuff.
  }
  </code></pre>
  
  <p>Error looks like this</p>
  
  <pre><code>ERROR in Cannot determine the module for class TutorialDirective in /test-app/src/app/tutorial/directive/tutorial.directive.ts!
  </code></pre>
  
  <p>My AppModule:</p>
  
  <pre><code>import { BrowserModule } from '@angular/platform-browser';
  import { NgModule } from '@angular/core';
  import { FormsModule } from '@angular/forms';
  import { HttpModule } from '@angular/http';
  
  import { AppComponent } from './app.component';
  
  import { TutorialService } from './tutorial/tutorial.service';
  import { TutorialDirective, DefaultTutorialDirective } from './tutorial/directive/tutorial.directive';
  
  @NgModule({
    declarations: [
      AppComponent,
      DefaultTutorialDirective
    ],
    imports: [
      BrowserModule,
      FormsModule,
      HttpModule
    ],
    providers: [TutorialService],
    bootstrap: [AppComponent]
  })
  export class AppModule { }
  </code></pre>
  
  <p>Ok after some debugging, if I make it not abstract and add it to declarations it works. Does this mean I can't mark a class as abstract? That doesn't seem right...</p>