InjectionToken

class

npm Package @angular/core
Module import { InjectionToken } from '@angular/core';
Source core/src/di/injection_token.ts

Overview

class InjectionToken<T> extends OpaqueToken {
  constructor(desc: string)
  toString(): string
  // inherited from core/OpaqueToken
  protected _desc: string
  toString(): string
}

Description

Creates a token that can be used in a DI Provider.

Use an InjectionToken whenever the type you are injecting is not reified (does not have a runtime representation) such as when injecting an interface, callable type, array or parametrized type.

InjectionToken is parameterized on T which is the type of object which will be returned by the Injector. This provides additional level of type safety.

interface MyInterface {...}
var myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));
// myInterface is inferred to be MyInterface.

Example

const BASE_URL = new InjectionToken<string>('BaseUrl');
const injector =
    ReflectiveInjector.resolveAndCreate([{provide: BASE_URL, useValue: 'http://localhost'}]);
const url = injector.get(BASE_URL);
// here `url` is inferred to be `string` because `BASE_URL` is `InjectionToken<string>`.
expect(url).toBe('http://localhost');

Constructor

constructor(desc: string)

Members

toString(): string

© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v4.angular.io/api/core/InjectionToken