文档注入器

注入器

💡
这篇文档的内容可能已经过时,我们正在建立独立的 API 网站

注入器负责持有绑定并根据标识符来实例化依赖项。

注入器主要有以下 API:

  • constructor(collectionOrDependencies?: Dependency[], parent?: Injector),构造 Injector,第一个参数是该注入器所持有的依赖项,可以传递另一个 Injector 作为父注入器
  • createChild(dependencies?: Dependency[]): Injector,创建一个子注入器
  • add<T>(dependency: Ctor<T> | DependencyPair<T> | DependencyIdentifier<T>, item?: DependencyItem<T> | T): void,添加依赖项
  • get<T>(id: DependencyIdentifier<T>, quantityOrLookup?: Quantity | LookUp, lookUp?: LookUp): T[] | T | null,以同步方式获取依赖项
  • getAsync<T>(id: DependencyIdentifier<T>): Promise<T>,以异步方式获取异步依赖项
  • createInstance<T extends unknown[], U extends unknown[], C>(ctor: new (...args: [...T, ...U]) => C, ...customArgs: T),用注入器来实例化一个类,可以通过追加参数来补充被实例化的类的构造参;注意两点:所有依赖注入的参数,要写在其他参数的后面;通过此 API 构造的实例不会进入注入器的缓存,注入器销毁的时候也不会去调用这些实例的 dispose 方法