Files
vue-desktop/src/services/di/IServiceContainer.ts

42 lines
955 B
TypeScript
Raw Normal View History

2025-10-11 11:30:44 +08:00
/**
*
*
*/
export interface IServiceContainer {
/**
*
* @param id
* @param factory
* @param dependencies ID数组
*/
register<T>(id: string, factory: ServiceFactory<T>, dependencies?: string[]): void
/**
*
* @param id
* @returns
* @throws
*/
getService<T>(id: string): T
/**
*
* @param id
* @returns
*/
has(id: string): boolean
/**
*
*
*/
initialize(): void
}
/**
*
* @param container
* @returns
*/
export type ServiceFactory<T> = (container: IServiceContainer) => T