Skip to content

DI Bag API / index / TokenDependencyContract

Type Alias: TokenDependencyContract<T extends readonly TokenBase[] = readonly [], B extends TokenBase = never, O extends readonly TokenBase[] = readonly [], C extends readonly CollectionTokenBase[] = readonly []> ​

ts
type TokenDependencyContract<T extends readonly TokenBase[] = readonly [], B extends TokenBase = never, O extends readonly TokenBase[] = readonly [], C extends readonly CollectionTokenBase[] = readonly []> = {
    readonly kind: 'tokens';
    readonly required: T;
    readonly bound: B;
    readonly optional: O;
} & ([C] extends [never] ? {
    readonly collections: C;
} : [C] extends [readonly []] ? {} : {
    readonly collections: C;
});

Defined in: token-types.ts:12

A provider's retained required, bound, and optional typed-token contracts.

Type Declaration ​

bound ​

ts
readonly bound: B;

kind ​

ts
readonly kind: 'tokens';

optional ​

ts
readonly optional: O;

required ​

ts
readonly required: T;

Type Parameters ​

Type ParameterDescription
T-
B-
O-
C-

See ​

https://dany-fedorov.github.io/di-bag/guides/tutorial.html#use-typed-tokens-for-explicit-positional-injection

Ordinary services. Checked composition. Explicit ownership.