# Interface ProviderOpts
InterfaceModule | import { ProviderOpts } from "@tsed/di" |
---|---|
Source | /packages/di/src/types/common/interfaces/ProviderOpts.ts |
# Overview
interface ProviderOpts<T = any> {
provide<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">;</span>
alias?<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">;</span>
type?<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a> | <a href="/api/di/types/common/domain/ProviderType.html"><span class="token">ProviderType</span></a><span class="token punctuation">;</span>
instance?<span class="token punctuation">:</span> T<span class="token punctuation">;</span>
deps?<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
useClass?<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a><T><span class="token punctuation">;</span>
useFactory?<span class="token punctuation">:</span> Function<span class="token punctuation">;</span>
useAsyncFactory?<span class="token punctuation">:</span> Function<span class="token punctuation">;</span>
useValue?<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
scope?<span class="token punctuation">:</span> <a href="/api/di/types/common/domain/ProviderScope.html"><span class="token">ProviderScope</span></a><span class="token punctuation">;</span>
resolvers?<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/DIResolver.html"><span class="token">DIResolver</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
hooks?<span class="token punctuation">:</span> Record<<span class="token keyword">string</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>instance<span class="token punctuation">:</span> T<span class="token punctuation">,</span> ...args<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span> => Promise<<span class="token keyword">any</span>> | <span class="token keyword">any</span>><span class="token punctuation">;</span>
<span class="token punctuation">[</span>key<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">]</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
}
# Members
provide: TokenProvider;
An injection token. (Typically an instance of Type
or InjectionToken
, but can be any
).
alias?: TokenProvider;
Create alias token to retrieve the instance provider.
type?: TokenProvider | ProviderType;
Provider type
instance?: T;
Instance build by the injector
deps?: TokenProvider[];
Define dependencies to build the provider
useClass?: Type<T>;
Class to instantiate for the token
.
useFactory?: Function;
Provide a function to build the provider
useAsyncFactory?: Function;
Provide an async function to build the provider
useValue?: any;
Provide predefined value
scope?: ProviderScope;
Scope used by the injector to build the provider.
resolvers?: DIResolver[];
A list of resolvers which will be used to resolve missing Symbol/Class when injector invoke a Class. This property allow external DI usage.
hooks?: Record<string, (instance: T, ...args: any[]) => Promise<any> | any>;
hooks to intercept custom events
[key: string]: any;