во втором кейсы вы будете инжектить SomeServiceTwo, но получать внутри существующий SomeService в первом же инжектить нужно будет SomeService
Но в чём смысл подавать сервис под другим соусом?
При реализации интерфейса
Непонимаю
+ если сервис объявлен в компоненте, используя providers: [..] вы будете получать новый экземпляр useExist будет находить ссылку на существующий сервис
Ну этот токен может быть абстрактный класс, а другой сервис будет реализировать его, и дальше просто инжектить абстрактный класс
Оооо, даааа. Вот теперь осенило. Спасибо Вам огроменное!)
useExic, используется к примеру для реализации ControlValueAccessor
То есть чтобы одна сущность шарилась всем?
Не то чтобы, а чтобы ты получал актуальный класс
ещё достаточно частый кейс для useExisting передавать forwardRef(() => текущий компонент), через InjectionToken и интерфейс потом в любом потомке иметь возможность получить доступ к родительскому компоненту, через интерфейс
Да, на счёт этого понятно, но с forwardRef непонятно, как-то, если и без него будет работать, то для чего он?
с ним информация о зависимости берется в момент ее иньекции, без него во время компиляции
То есть, когда в дочернем компоненте я буду внедрять зависимость, то я получу актуальные данные о родителе на данный момент, а без forwardRef данные о внедряемом родителе будут получены те, что во время компиляции? Я правильно понимаю?
Обсуждают сегодня