Project

General

Profile

1
/**
2
 * @license
3
 * Copyright Google Inc. All Rights Reserved.
4
 *
5
 * Use of this source code is governed by an MIT-style license that can be
6
 * found in the LICENSE file at https://angular.io/license
7
 */
8
/**
9
 * Creates a token that can be used in a DI Provider.
10
 *
11
 * ### Example ([live demo](http://plnkr.co/edit/Ys9ezXpj2Mnoy3Uc8KBp?p=preview))
12
 *
13
 * ```typescript
14
 * var t = new OpaqueToken("value");
15
 *
16
 * var injector = Injector.resolveAndCreate([
17
 *   {provide: t, useValue: "bindingValue"}
18
 * ]);
19
 *
20
 * expect(injector.get(t)).toEqual("bindingValue");
21
 * ```
22
 *
23
 * Using an `OpaqueToken` is preferable to using strings as tokens because of possible collisions
24
 * caused by multiple providers using the same string as two different tokens.
25
 *
26
 * Using an `OpaqueToken` is preferable to using an `Object` as tokens because it provides better
27
 * error messages.
28
 * @deprecated since v4.0.0 because it does not support type information, use `InjectionToken<?>`
29
 * instead.
30
 */
31
export declare class OpaqueToken {
32
    protected _desc: string;
33
    constructor(_desc: string);
34
    toString(): string;
35
}
36
/**
37
 * Creates a token that can be used in a DI Provider.
38
 *
39
 * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a
40
 * runtime representation) such as when injecting an interface, callable type, array or
41
 * parametrized type.
42
 *
43
 * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by
44
 * the `Injector`. This provides additional level of type safety.
45
 *
46
 * ```
47
 * interface MyInterface {...}
48
 * var myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));
49
 * // myInterface is inferred to be MyInterface.
50
 * ```
51
 *
52
 * ### Example
53
 *
54
 * {@example core/di/ts/injector_spec.ts region='InjectionToken'}
55
 *
56
 * @stable
57
 */
58
export declare class InjectionToken<T> extends OpaqueToken {
59
    private _differentiate_from_OpaqueToken_structurally;
60
    constructor(desc: string);
61
    toString(): string;
62
}
(2-2/9)