Я работаю над проектом Angular, недавно обновленным до Angular 6 из Angular 5.2.10. До обновления все отлично работает.
Теперь, каждый раз, когда я компилирую свой код для производства, хотя во время компиляции ошибок нет, я получаю эту ошибку при запуске:
ReferenceError: must call super constructor before using |this| in Ti class constructor
Единственный класс машинописи, который использует super, это
export class Exception extends Error {
private _statusCode: number;
constructor(statusCode: number, type: ExceptionType) {
super(ExceptionType[type]);
this._statusCode = statusCode;
}
get statusCode(): number {
return this._statusCode;
}
}
Просто и понятно. ExceptionType - это Enum.
Ошибка довольно очевидна, но, похоже, я поступил правильно, потому что конструктор класса Error имеет единственный необязательный параметр
Error(errorMsg?:string)
и это называется после "супер" вещи.
Я оцепенел.
Редактировать : попробовал предложение из комментариев, у меня не работает
Редактировать 2 : как указывало @estus, ошибка не в этом коде, а в
class Ei {
constructor(l, n=Ei.now) {
this.SchedulerAction = l,
this.now = n
}
schedule(l, n=0, e) {
return new this.SchedulerAction(this,l).schedule(e, n)
}
}
Ei.now = Date.now ? Date.now : ()=>+new Date;
class Ti extends Ei {
constructor(l, n=Ei.now) {
this.actions = [],
this.active = !1,
this.scheduled = void 0
}
...
}
затронутая строка
this.actions = []
Что не имеет никакого отношения к моему коду. Я открою вопрос на github.
Редактировать 3 : пожалуйста, отметьте https://github.com/angular/angular-cli/issues/7799#issuecomment-386582136