Injectable
decorator
Decorator that marks a class as available to be provided and injected as a dependency.
API
@Injectable();
@Injectable(
options?: {
providedIn: Type<any> | 'root' | 'platform' | 'any' | null;
} & InjectableProvider,
);
Usage Notes
Marking a class with @Injectable
ensures that the compiler
will generate the necessary metadata to create the class's
dependencies when the class is injected.
The following example shows how a service class is properly marked so that a supporting service can be injected upon creation.
@Injectable()
class UsefulService {}
@Injectable()
class NeedsService {
constructor(public service: UsefulService) {}
}
const injector = Injector.create({
providers: [
{provide: NeedsService, deps: [UsefulService]},
{provide: UsefulService, deps: []},
],
});
expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
Jump to details