The set of components, directives, and pipes declared in this
NgModule that can be used in the template of any component that is part of an
NgModule that imports this NgModule. Exported declarations are the module's public API.
The set of schemas that declare elements to be allowed in the NgModule.
Elements and properties that are neither Angular components nor directives
must be declared in a schema.
Dependencies whose providers are listed here become available for injection
into any component, directive, pipe or service that is a child of this injector.
The NgModule used for bootstrapping uses the root injector, and can provide dependencies
to any part of the app.
A lazy-loaded module has its own injector, typically a child of the app root injector.
Lazy-loaded services are scoped to the lazy-loaded module's injector.
If a lazy-loaded module also provides the UserService, any component created
within that module's context (such as by router navigation) gets the local instance
of the service, not the instance in the root injector.
Components in external modules continue to receive the instance provided by their injectors.
The set of selectors that are available to a template include those declared here, and
those that are exported from imported NgModules.
Declarables must belong to exactly one module.
The compiler emits an error if you try to declare the same class in more than one module.
Be careful not to declare a class that is imported from another module.
A template can use exported declarables from any
imported module, including those from modules that are imported indirectly
and re-exported.
For example, ModuleA imports ModuleB, and also exports
it, which makes the declarables from ModuleB available
wherever ModuleA is imported.
The set of components, directives, and pipes declared in this
NgModule that can be used in the template of any component that is part of an
NgModule that imports this NgModule. Exported declarations are the module's public API.
A declarable belongs to one and only one NgModule.
A module can list another module among its exports, in which case all of that module's
public declaration are exported.
Declarations are private by default.
If this ModuleA does not export UserComponent, then only the components within this
ModuleA can use UserComponent.
ModuleA can import ModuleB and also export it, making exports from ModuleB
available to an NgModule that imports ModuleA.
Angular automatically adds components in the module's bootstrap
and route definitions into the entryComponents list. Use this
option to add components that are bootstrapped
using one of the imperative techniques, such as ViewContainerRef.createComponent().
The set of schemas that declare elements to be allowed in the NgModule.
Elements and properties that are neither Angular components nor directives
must be declared in a schema.