Injector
Class
Concrete injectors implement this interface. Injectors are configured with providers that associate dependencies of various types with injection tokens.
get
5 overloadsRetrieves an instance from the injector based on the provided token.
@paramnotFoundValue
undefined
@returns
T
Retrieves an instance from the injector based on the provided token.
@paramnotFoundValue
null | undefined
@returns
T | null
Retrieves an instance from the injector based on the provided token.
@paramnotFoundValue
T | undefined
@returns
T
Retrieves an instance from the injector based on the provided token.
@paramnotFoundValue
T | undefined
@returns
T
@paramtoken
any
@paramnotFoundValue
any
@returns
any
THROW_IF_NOT_FOUND
{}
NULL
Injector
create
2 overloadsCreates a new injector instance that provides one or more dependencies,
according to a given type or types of StaticProvider
.
@paramoptions
{ providers: (any[] | TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider)[]; parent?: Injector | undefined; name?: string | undefined; }
An object with the following properties:
providers
: An array of providers of the StaticProvider type.parent
: (optional) A parent injector.name
: (optional) A developer-defined identifying name for the new injector.
@returns
Injector
Usage Notes
The following example creates a service injector instance.
class Square { name = 'square'; } const injector = Injector.create({providers: [{provide: Square, deps: []}]}); const shape: Square = injector.get(Square); expect(shape.name).toEqual('square'); expect(shape instanceof Square).toBe(true);
Usage example
const injector: Injector = Injector.create({ providers: [{provide: 'validToken', useValue: 'Value'}], }); expect(injector.get('validToken')).toEqual('Value'); expect(() => injector.get('invalidToken')).toThrowError(); expect(injector.get('invalidToken', 'notFound')).toEqual('notFound');
Injector
returns itself when given Injector
as a token:
const injector = Injector.create({providers: []}); expect(injector.get(Injector)).toBe(injector);
Jump to details