Не пряма відповідь на запитання, але якщо ви читаєте цей SO з тієї причини, що я є, це може допомогти ...
Скажімо, ви використовуєте ng2-translate і дуже хочете, User.tsщоб його мав ваш клас. Ви одразу думаєте, що використовувати DI для його введення, ви все-таки робите Angular. Але це начебто надмірно, ви можете просто передати його у свій конструктор або зробити загальнодоступною змінною, яку ви встановили з компонента (де ви, мабуть, зробили це DI).
наприклад:
import { TranslateService } from "ng2-translate";
export class User {
public translateService: TranslateService;
}
потім з якогось пов'язаного з користувачем компонента, який ввів TranslateService
addEmptyUser() {
let emptyUser = new User("", "");
emptyUser.translateService = this.translateService;
this.users.push(emptyUser);
}
Сподіваємось, це допомагає таким людям, як я, котрі збиралися написати набагато складніше для підтримки коду, тому що ми іноді занадто кмітливі =]
(ПРИМІТКА. Причиною того, що вам може знадобитися встановити змінну замість того, щоб робити її частиною вашого методу конструктора, є те, що у вас можуть бути випадки, коли вам не потрібно користуватися службою, тому завжди вимагати її передачі означатиме введення додаткового імпорту / код, який насправді ніколи не використовується)