dynamicsmobile
Version:
Allows development of off-line mobile and web business apps over the Dynamics Mobile platform. More info on https://www.dynamicsmobile.com
38 lines (37 loc) • 1.4 kB
TypeScript
import { Type } from "./type";
export declare class InjectionToken {
injectionIdentifier: string;
constructor(injectionIdentifier: string);
}
export type Factory<T> = () => T;
export type Token<T> = Type<T> | InjectionToken;
export interface BaseProvider<T> {
provide: Token<T>;
replace?: boolean;
}
export interface ClassProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useClass: Type<T>;
replace?: boolean;
}
export interface ValueProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useValue: T;
replace?: boolean;
}
export interface FactoryProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useFactory: Factory<T>;
replace?: boolean;
}
export interface SingletonClassProvider<T> extends BaseProvider<T> {
provide: Token<T>;
useClass: Type<T>;
singleton: true;
replace?: boolean;
}
export type Provider<T> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T> | SingletonClassProvider<T>;
export declare function isClassProvider<T>(provider: BaseProvider<T>): provider is ClassProvider<T>;
export declare function isValueProvider<T>(provider: BaseProvider<T>): provider is ValueProvider<T>;
export declare function isFactoryProvider<T>(provider: BaseProvider<T>): provider is FactoryProvider<T>;
export declare function isSingletonProvider<T>(provider: BaseProvider<T>): provider is ClassProvider<T>;