Simple DI framework written in and for TypeScript.
By default all bindings are in singleton scope. Where possible you can call a
transient() binder function to create a transient binding.
Make sure your
reflect-metadata and include it somewhere.
Make sure your setup supports Maps and Symbols.
simple-ts-di supports property injection. It will only work if the type (here
Service) has a meaningful runtime representation. So it only works for classes (as of now). If you want to inject some primitives or a service which implements an interface you have to use named injection. If your environment dont let you control how the class is instantiated (e.g. react components are instantiated by react and not via container.get(...)), you can use a special version of inject - abounded inject. See "bounded property injection".
bounded property injection
;;;t.service.sayHi; // returns Hi
tests/ for more complex examples and API.