The type of the class whose instance is to be registered.
The identifier used to register the instance in the DI container.
Optional
init: InitDelegate<TargetType & (new (..._args: unknown[]) => InstanceType<TargetType>), InstanceType<TargetType>>An optional initializer function which get the constructor of the class as input and returns an instance of the class.
A function that is applied as a decorator to the class.
Rest
...args: unknown[]
A decorator to register an instance of a class in the DI (Dependency Injection) container. The instance is created only when it is first needed (Lazy Initialization).