У меня есть родительский абстрактный класс, объявленный следующим образом:
import { Localization } from 'angular-l10n';
import { SomeModel} from '../../api/models/some-model';
import { SomeService } from '../../api/services/some.service';
export abstract class BaseComponent extends Localization implements OnInit {
someModel: SomeModel[];
constructor(
protected someService: SomeService
) {
super();
}
ngOnInit() {
this.someService
.getSomeModel()
.pipe(take(1))
.subscribe(ref => (this.someModel= ref), err => this.onError(err));
}
Дочерний класс использует этого родителя следующим образом:
@Component({
selector: 'some-child-component',
templateUrl: './some-child.component.html',
styleUrls: ['./some-child.component.scss'],
})
export class SomeChildComponent extends BaseComponent implements OnInit {
constructor(
protected someService: SomeService
) {
super(someService)
}
ngOnInit() {
super.ngOnInit();
}
}
Когда я запускаю ng serve --aot --preserve-symlinks
, всеработает отлично.Однако всякий раз, когда я обновляю какой-либо файл, горячая перезагрузка обновляет построенное приложение, и выдается ошибка.
Класс BaseComponent в D: /some/path/components/base-component.ts расширяется отa Injectable в другом модуле компиляции без дублирования декоратора. Добавьте в класс декоратор Injectable или Pipe, Directive или Component или NgModule.
Вот версии, которые я использую:
Angular CLI: 1.7.4
Node: 6.11.4
OS: win32 x64
Angular: 5.2.10
typescript: 2.6.2
webpack: 3.11.0
Есть идеи, как я могу заставить работать мое наследство?