@NgModule({declarations: [], imports: [], exports: [], providers: [], bootstrap: []}); | It specifies a module, which contains components, directives, pipes, and providers. |
declarations: [MyFirstComponent, MySecondComponent, MyDatePipe] | It contains the list of components, directives, and pipes which belong to current module. |
imports: [BrowserModule, MyModule] | It contains the list of modules to import into current module. |
exports: [MyFirstComponent, MyDatePipe] | It contains the list of components, directives, and pipes visible to modules that import this module. |
providers: [MyFirstService, { provide: ... }] | It contains the list of dependency injection providers visible both to the contents of this module and to importers of this module. |
entryComponents: [MyFirstComponent, MySecondComponent] | It contains the list of components not referenced in any reachable template(i.e. dynamically created from code). |
bootstrap: [MyAppComponent] | It contains the list of components to bootstrap when this module is bootstrapped. |