Configures the Injector to return a value of another useExisting token.
API
interface ExistingProvider extends ExistingSansProvider {
provide: any;
multi?: boolean | undefined;
override useExisting: any;
}
provide
anyAn injection token. Typically an instance of Type or InjectionToken, but can be any.
multi
boolean | undefinedWhen true, 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.
useExisting
anyExisting token to return. (Equivalent to injector.get(useExisting))
Usage Notes
class Greeting {
salutation = 'Hello';
}
class FormalGreeting extends Greeting {
override salutation = 'Greetings';
}
const injector = Injector.create({
providers: [
{provide: FormalGreeting, deps: []},
{provide: Greeting, useExisting: FormalGreeting},
],
});
expect(injector.get(Greeting).salutation).toEqual('Greetings');
expect(injector.get(FormalGreeting).salutation).toEqual('Greetings');
expect(injector.get(FormalGreeting)).toBe(injector.get(Greeting)); Multi-value example
const locale = new InjectionToken<string[]>('locale');
const injector = Injector.create({
providers: [
{provide: locale, multi: true, useValue: 'en'},
{provide: locale, multi: true, useValue: 'sk'},
],
});
const locales: string[] = injector.get(locale);
expect(locales).toEqual(['en', 'sk']);