What it does
A marker metadata that marks a class as available to Injector
for creation.
How to use
@Injectable() class Car {}
Description
For more details, see the Dependency Injection Guide.
Example
@Injectable()
class UsefulService {
}
@Injectable()
class NeedsService {
constructor(public service: UsefulService) {}
}
const injector = ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService]);
expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
Injector
will throw NoAnnotationError when trying to instantiate a class that
does not have @Injectable
marker, as shown in the example below.
class UsefulService {}
class NeedsService {
constructor(public service: UsefulService) {}
}
expect(() => ReflectiveInjector.resolveAndCreate([NeedsService, UsefulService])).toThrow();
exported from @angular/core/index defined in @angular/core/src/di/metadata.ts