UNPKG

typed-inject

Version:

Type safe dependency injection framework for TypeScript

27 lines (24 loc) 599 B
import { InjectionToken, InjectorToken, TargetToken, } from './InjectionToken.js'; import { Injector } from './Injector.js'; export type CorrespondingType< TContext, T extends InjectionToken<TContext>, > = T extends InjectorToken ? Injector<TContext> : T extends TargetToken ? Function | undefined : T extends keyof TContext ? TContext[T] : never; export type CorrespondingTypes< TContext, TS extends readonly InjectionToken<TContext>[], > = { [K in keyof TS]: TS[K] extends InjectionToken<TContext> ? CorrespondingType<TContext, TS[K]> : never; };