我正在开发一个Angular项目,最近更新为Angular 5.2.10中的Angular 6。升级之前一切正常。
现在,每次编译代码进行生产时,虽然在编译期间没有任何错误,但在运行时会收到此错误:
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是一个枚举。
错误是非常自我解释的,但似乎我做了正确的事,因为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