Cookies concent notice

This site uses cookies from Google to deliver its services and to analyze traffic.
Learn more
Skip to main content
This site is no longer updated.Head to Angular.devHome
/

This is the archived documentation for Angular v17. Please visit angular.dev to see this page for the current version of Angular.

Injector

Concrete injectors implement this interface. Injectors are configured with providers that associate dependencies of various types with injection tokens.

      
      abstract class Injector {
  static THROW_IF_NOT_FOUND: THROW_IF_NOT_FOUND
  static NULL: Injector
  static create(options: StaticProvider[] | { providers: (any[] | TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider)[]; parent?: Injector; name?: string; }, parent?: Injector): Injector
abstract get<T>(token: ProviderToken<T>, notFoundValue: undefined, options: InjectOptions & { optional?: false; }): T
abstract get<T>(token: ProviderToken<T>, notFoundValue: null, options: InjectOptions): T | null
abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions | InjectFlags): T
abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, flags?: InjectFlags): T
abstract get(token: any, notFoundValue?: any): any }

See also

Provided in

  • 'any'

Static properties

Property Description
static THROW_IF_NOT_FOUND: THROW_IF_NOT_FOUND
static NULL: Injector

Static methods

      
      static create(providers: StaticProvider[], parent?: Injector): Injector
    

Deprecated from v5 use the new signature Injector.create(options)

Parameters
providers StaticProvider[]
parent Injector

Optional. Default is undefined.

Returns

Injector

Creates a new injector instance that provides one or more dependencies, according to a given type or types of StaticProvider.

      
      static create(options: { providers: (any[] | TypeProvider | ValueProvider | ClassProvider | ConstructorProvider | ExistingProvider | FactoryProvider | StaticClassProvider)[]; parent?: Injector; name?: string; }): Injector
    
Parameters
options object

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: The new injector instance.

Methods

Retrieves an instance from the injector based on the provided token.

4 overloads...

Show All Hide All expand_more
      
      abstract get<T>(token: ProviderToken<T>, notFoundValue: undefined, options: InjectOptions & { optional?: false; }): T
    
Parameters
token ProviderToken<T>
notFoundValue undefined
options InjectOptions & { optional?: false; }
Returns

T: The instance from the injector if defined, otherwise the notFoundValue.

Throws

Error When the notFoundValue is undefined or Injector.THROW_IF_NOT_FOUND.


Overload #1
      
      abstract get<T>(token: ProviderToken<T>, notFoundValue: null, options: InjectOptions): T | null
    
Parameters
token ProviderToken<T>
notFoundValue null
options InjectOptions
Returns

T | null: The instance from the injector if defined, otherwise the notFoundValue.

Throws

Error When the notFoundValue is undefined or Injector.THROW_IF_NOT_FOUND.


Overload #2
      
      abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, options?: InjectOptions | InjectFlags): T
    
Parameters
token ProviderToken<T>
notFoundValue T

Optional. Default is undefined.

options InjectOptions | InjectFlags

Optional. Default is undefined.

Returns

T: The instance from the injector if defined, otherwise the notFoundValue.

Throws

Error When the notFoundValue is undefined or Injector.THROW_IF_NOT_FOUND.


Overload #3
      
      abstract get<T>(token: ProviderToken<T>, notFoundValue?: T, flags?: InjectFlags): T
    

Deprecated use object-based flags (InjectOptions) instead.

Parameters
token ProviderToken<T>
notFoundValue T

Optional. Default is undefined.

flags InjectFlags

Optional. Default is undefined.

Returns

T: The instance from the injector if defined, otherwise the notFoundValue.

Throws

Error When the notFoundValue is undefined or Injector.THROW_IF_NOT_FOUND.


Overload #4
      
      abstract get(token: any, notFoundValue?: any): any
    

Deprecated from v4.0.0 use ProviderToken

Parameters
token any
notFoundValue any

Optional. Default is undefined.

Returns

any

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);