为什么Angular在app.modules.ts中导出空类?

Typ*_*ner 7 typescript angular

我是Angular的新手,我正在使用Angular 4,我使用Angular CLI,通过ng new命令创建了一个应用程序.

在main.ts中,我们有

 ...
import {AppModule} from './app/app.module';
 .
 .
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)

和AppModule定义(如你所见)app/app.module,这是我们所拥有的app.module.ts:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

如你所见export class AppModule { },它也用于 platformBrowserDynamic().bootstrapModule(AppModule);

有人可以帮我解释一下吗?

Jak*_*ith 8

班级的身体确实是空的.但是class(@NgModule)上面的装饰器正在为该类提供其功能.所以真的,那个班不是空的.在将装饰器应用于它之后,它不需要任何额外的逻辑. bootstrapModule将类作为输入,并假定该类@NgModule以与您拥有的类似的方式(声明,导入,提供程序等)进行了装饰.