UNPKG

ts-ioc-container

Version:

Fast, lightweight TypeScript dependency injection container with a clean API, scoped lifecycles, decorators, tokens, hooks, lazy injection, customizable providers, and no global container objects.

19 lines (18 loc) 772 B
import { IContainer } from '../container/IContainer'; import { InjectionToken } from './InjectionToken'; import { type constructor } from '../utils/basic'; import { ArgsFn, ProviderOptions } from '../provider/IProvider'; export declare class ClassToken<T = any> extends InjectionToken<T> { private readonly target; private readonly _getArgsFn; private readonly _isLazy; constructor(target: constructor<T>, { getArgsFn, isLazy }?: { getArgsFn?: ArgsFn; isLazy?: boolean; }); select<R>(fn: (target: T) => R): (s: IContainer) => R; resolve(s: IContainer, { args, lazy }?: ProviderOptions): T; args(...newArgs: unknown[]): ClassToken<T>; argsFn(fn: (s: IContainer) => unknown[]): ClassToken<T>; lazy(): ClassToken<T>; }