Skip to content

Injectable · Core API

Marks a class as an injectable provider for a token.

Dependencies are explicit and ordered by constructor parameter position. No reflect-metadata, parameter decorators, or global container are used.

@Injectable({ token: USER_SERVICE, deps: [LOGGER] })
class UserService {
private readonly logger: Logger;
constructor(logger: Logger) {
this.logger = logger;
}
}

options

Token, constructor dependencies, lifetime, and cleanup hook.

function Injectable<T, TDeps>(options): (target, context) => void;
Type Parameter

T

TDeps extends readonly Dependency<unknown>[]

Parameter Type

options

InjectableOptions<T, TDeps> & object

(target, context) => void

function Injectable<T>(options): (target, context) => void;
Type Parameter

T

Parameter Type

options

Omit<InjectableOptions<T, readonly []>, "deps">

(target, context) => void