Проверяет понимание механизма разрешения зависимостей в иерархии инжекторов Angular и роли декораторов-модификаторов поиска.
Angular использует иерархическую систему внедрения зависимостей: у каждого компонента, директивы и модуля есть свой инжектор, а поиск провайдера по умолчанию идёт снизу вверх — от текущего инжектора к родительским, вплоть до корневого. Декораторы-модификаторы меняют это поведение, ограничивая область поиска или разрешая отсутствие зависимости.
null. Полезно для необязательных сервисов.@Component({ selector: 'child', template: '' })
export class ChildComponent {
constructor(
@Optional() private logger?: LoggerService,
@SkipSelf() private parentService: ParentService,
@Self() @Optional() private localService?: LocalService,
@Host() private hostService: HostService
) {}
}
В этом примере logger может быть null, parentService ищется начиная с родителя, localService — только в текущем инжекторе, а hostService — не выше хост-компонента.
Модификаторы критичны при построении библиотек, где нужно контролировать, откуда берётся зависимость, и избегать неожиданного перехвата провайдеров родительскими компонентами. Они также помогают реализовать паттерны вроде «локального» сервиса или опциональной конфигурации.
Итог: применяйте эти декораторы, когда стандартного поиска снизу вверх недостаточно — например, чтобы ограничить область видимости, разрешить отсутствие зависимости или избежать циклического внедрения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию