Configures the Injector
to return an instance of useClass
for a token.
属性 属性名 类型 说明 provideany
An injection token. (Typically an instance of Type
or InjectionToken
, but can be any
).
multiboolean
If true, then injector returns an array of instances. This is useful to allow multiple providers spread across many files to provide configuration information to a common token.
使用说明 Example abstract class Shape { // TODO(issue/24571): remove '!'. name !: string; } class Square extends Shape { name = 'square'; } const injector = ReflectiveInjector.resolveAndCreate([{provide: Shape, useClass: Square}]); const shape: Shape = injector.get(Shape); expect(shape.name).toEqual('square'); expect(shape instanceof Square).toBe(true); Note that following two providers are not equal:
class Greeting { salutation = 'Hello'; } class FormalGreeting extends Greeting { salutation = 'Greetings'; } const injector = ReflectiveInjector.resolveAndCreate( [FormalGreeting, {provide: Greeting, useClass: FormalGreeting}]); // The injector returns different instances. // See: {provide: ?, useExisting: ?} if you want the same instance. expect(injector.get(FormalGreeting)).not.toBe(injector.get(Greeting)); Multi-value example const locale = new InjectionToken <string[]>('locale '); const injector = Injector.create([ {provide: locale , multi: true, useValue: 'en'}, {provide: locale , multi: true, useValue: 'sk'}, ]); const locales: string[] = injector.get(locale ); expect(locales).toEqual(['en', 'sk']);