title: How to export classes/models that are not components,directives or pipes in an Angular 4 Module?
body: <p>I understand how I create a module with components, directives, pipes, export and then import them in another angular module. It works fine.</p>
  
  <p>But suppose I have a generic module 'GenericCarList', which has a component
  that can received info to build a beautiful car list with usefull informations, so, I can define my module as:</p>
  
  <pre><code>import { NgModule } from '@angular/core';
  import { CommonModule } from '@angular/common';
  import { GenericCarListComponent } from './genericCarList.component';
  
  @NgModule({
    imports: [
      CommonModule
    ],
    declarations: [
      GenericCarListComponent 
    ],
    exports: [
      GenericCarListComponent
  ]
  })
  export class GenericCarListModule{ }
  </code></pre>
  
  <p>So, above I'm declaring GenericCarListModule and exporting GenericCarListComponent to be used by other module that uses GenericCarListModule.</p>
  
  <p>In another project which has a AppModule, I can import GenericCarListModule and use GenericCarListComponent just adding the following tag in my html file:</p>
  
  <pre><code>&lt;app-genericCarListComponent&gt;My generic Car List&lt;/app-genericCarListComponent&gt;
  </code></pre>
  
  <p>after importing my GenericCarListComponent</p>
  
  <pre><code>import { BrowserModule } from '@angular/platform-browser';
  import { NgModule } from '@angular/core';
  import { AppComponent } from './app.component';
  
  import { GenericCarListComponent } from '....'
  @NgModule({
    declarations: [
      AppComponent
    ],
    imports: [
      BrowserModule,
      GenericCarListComponent
    ],
    providers: [],
    bootstrap: [AppComponent]
  })
  export class AppModule { }
  </code></pre>
  
  <p>It works fine! :)</p>
  
  <p>But I would like to have in my GenericCarListModule useful classes and models. For example:</p>
  
  <pre><code>//a car model
  //car.ts
  
  export class car {
      maxSpeed: number;
      color: string;
  
  }
  </code></pre>
  
  <p>and </p>
  
  <pre><code>//a car commons class
      //carCommons.ts
  
  export class carCommons {
  
      //some useful methods that is useful for anyone that is using this list car module.
  
  }
  </code></pre>
  
  <p>If they were components, pipes or directives, I could export them like I did previously:</p>
  
  <pre><code> exports: [
          GenericCarListComponent
      ]
  </code></pre>
  
  <p>In Angular Docs, they say:</p>
  
  <blockquote>
    <p>What should I export?</p>
    
    <p>Export declarable classes that components in other NgModules are able
    to reference in their templates. These are your public classes. If you
    don't export a class, it stays private, visible only to other
    component declared in this NgModule.</p>
    
    <p>You can export any declarable class—components, directives, and
    pipes—whether it's declared in this NgModule or in an imported
    NgModule.</p>
  </blockquote>
  
  <p>As they're not declarable class—components, directives, and pipes, how is the proper way to export and then import theses classes in my AppModule?</p>