В каких случаях не сработает Inject?
Хочу понять, по какому принципу можно определить, сработает ли inject через конструктор/декоратор @Inject, а в каких нужно подтягивать через Container.get()(либо аналогичные конструкции, это ведь просто имплементация Lazy Injection?)?
В целом, не очень понимаю, есть ли какие-то правила для этого паттерна, чтобы грамотно выстраивать зависимости, избегая применения «подтягивания» вместо инъекции? Интересует архитектура.
Если можно, с примерами на Typescript (еще лучше с typescript-ioc, но вряд ли это имеет значение)