А ниже приведено объяснение из документов angular.
Компонент ввода - это любой компонент, который Angular обязательно загружает по типу.
Компонент, загруженный декларативно через свой селектор, не является входным компонентом.
Большинство компонентов приложения загружаются декларативно. Angular использует селектор компонента для поиска элемента в шаблоне. Затем он создает HTML-представление компонента и вставляет его в DOM в выбранном элементе. Это не входные компоненты.
Некоторые компоненты загружаются только динамически и никогда не упоминаются в шаблоне компонента.
Загрузочный корень AppComponent- это входной компонент. Верно, его селектор соответствует тегу элемента в index.html. Но index.htmlэто не шаблон компонента, и AppComponentселектор не соответствует элементу ни в одном шаблоне компонента.
Angular загружает AppComponent динамически, потому что он либо указан по типу, @NgModule.bootstrapлибо принудительно усилен с помощью метода модуля ngDoBootstrap.
Компоненты в определениях маршрутов также являются входными компонентами. Определение маршрута относится к компоненту по его типу. Маршрутизатор игнорирует селектор маршрутизируемого компонента (если он вообще есть) и динамически загружает компонент в файл RouterOutlet.
Компилятор не может обнаружить эти входные компоненты, ища их в других шаблонах компонентов. Вы должны рассказать о них, добавив их в entryComponentsсписок.
Angular автоматически добавляет в модуль следующие типы компонентов entryComponents:
- Компонент в
@NgModule.bootstrapсписке.
- Компоненты, указанные в конфигурации маршрутизатора.
Вам не нужно явно упоминать эти компоненты, хотя это безвредно.
declaredвngModuleно никогда не используются. angular.io/docs/ts/latest/cookbook/… entrycomponents -