Skip to main content
Typed tokens are the foundation of @brushy/di-core. They enable compile-time inference for register, resolve, and factory dependencies.

createToken

Runtime tokens are Symbol(description) values. Prefer descriptive strings for debugging.
Avoid raw string tokens in application code. Legacy string / Symbol tokens still work but require manual generics: container.resolve<MyType>("TOKEN").

Provider types

Value provider

Class provider

Factory provider

deps() helper

Preserves tuple types for factory and class dependencies:

Class as token

Register and resolve using the class constructor directly:

Provider options

Lifecycle
default:"singleton"
singleton | transient | scoped | immutable. See Lifecycle.
number
Milliseconds before a cached singleton is recreated (lazy expiry on next resolve).
number
TTL for cached async method promises. See Promise cache.
{ subscribe, unsubscribe }
Optional observable hook for reactive providers.

Batch registration

Container constructor providers

Type exports