Декоратор Inject
Что он делает
Декоратор параметра, который указывает на зависимость.
Как использовать
@Injectable() class Car { constructor(@Inject("MyEngine") public engine:Engine) {} }
Описание
Для получения более подробной информации см. Руководство по инъекции зависимостей.
Пример
class Engine {}
@Injectable()
class Car {
constructor(@Inject('MyEngine') public engine: Engine) {}
}
const injector =
ReflectiveInjector.resolveAndCreate([{provide: 'MyEngine', useClass: Engine}, Car]);
expect(injector.get(Car).engine instanceof Engine).toBe(true);
Когда @Inject() отсутствует, Injector будет использовать аннотацию типа параметра.
Пример
class Engine {}
@Injectable()
class Car {
constructor(public engine: Engine) {
} // same as constructor(@Inject(Engine) engine:Engine)
}
const injector = ReflectiveInjector.resolveAndCreate([Engine, Car]);
expect(injector.get(Car).engine instanceof Engine).toBe(true);
экспортировано из @angular/core/index, определено в @angular/core/src/di/metadata.ts
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v2.angular.io/docs/ts/latest/api/core/index/Inject-decorator.html