Type Alias Module<I, T>

Module<I, T>: {
    [K in keyof T]: Module<I, T[K]> | ((injector: I) => T[K])
}

A Module<I> is a description of possibly grouped service factories.

Given a type I = { group: { service: A } }, Module := { group: { service: (injector: I) => A } }

Making I available during the creation of I allows us to create cyclic dependencies.

Type Parameters

  • I
  • T = I