@farris/devkit-vue
Version:
46 lines (45 loc) • 977 B
TypeScript
import { Type } from '../types';
/**
* 值Provider
*/
export interface ValueProvider {
provide: any;
useValue: any;
multi?: boolean;
}
/**
* 类型Provider
*/
export interface StaticClassProvider {
provide: any;
useClass: Type<any>;
deps: any[];
multi?: boolean;
}
/**
* 构造函数Provider
*/
export interface ConstructorProvider {
provide: Type<any>;
deps: any[];
multi?: boolean;
}
/**
* 转用已存在的Provider
*/
export interface ExistingProvider {
provide: any;
useExisting: any;
multi?: boolean;
}
/**
* 工厂注入器
*/
export interface FactoryProvider {
provide: any;
useFactory: Function;
deps?: any[];
multi?: boolean;
}
export type StaticProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider | any[];
export type SupportedProvider = ValueProvider | ExistingProvider | StaticClassProvider | ConstructorProvider | FactoryProvider;