UNPKG

pdd

Version:
81 lines (80 loc) 2.23 kB
import type { ClassConstructor } from '../type/utils'; /** * Class Container * @description zh-CN 容器类,所有需要注入到核心容器的方法或者类都源于此 * @author SunnyXu <xy@ztes.com> */ export declare class Container { protected static instance: Container | null; protected instances: Map<any, any>; protected bindings: Record<string, any>; protected aliases: Record<string, any>; /** * method bind * @description zh-CN 绑定方法 * @param abstract * @param concrete */ bind(abstract: string | string[], concrete: any): void; /** * make 创建类的实例/获取对象 create instance/object * @param abstract * @param params * @param shared */ make(abstract: string, params?: Record<string, any> | [], shared?: boolean): any; /** * makeClass 创建类 * @param name * @param Executor * @param params * @param shared */ protected makeClass(name: string, Executor: ClassConstructor, params: unknown, shared?: boolean): any; /** * makeFunc 创建函数 * @param name * @param executor * @param params * @param shared * @protected */ protected makeFunc(name: string, executor: CallableFunction, params: unknown, shared?: boolean): any; /** * has as existence * 是否存在标识 existence 的别名 * @param {String} name */ has(name: string): boolean; /** * existence 存在标识 * @param {String} name */ existence(name: string): boolean; /** * getAlias 获取别名 * @param abstract */ getAlias(abstract: string): any; /** * get 获取实例 * @param abstract */ get(abstract: string): any; /** * singleton 单例 * @param abstract * @param concrete */ singleton(abstract: string, concrete: any): void; /** * getInstance 获取实例 * */ static getInstance<Instance extends Container>(): Container | Instance; /** * proxyInstance 代理实例 * */ protected proxyInstance(): this; }