测试用的service类:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export abstract class HttpErrorHandler{
constructor(){}
abstract handleError(
): void;
}
@Injectable({
providedIn: 'root',
})
export class UnKnownHandler {
handleError(){
console.log('UnknownHandler works');
}
}
@Injectable({
providedIn: 'root',
})
export class BadGatewayHandler {
handleError(){
console.log('BadGatewayHandlers works');
}
}
因为abstract class没有办法实例化,所以上面的定义会遇到错误消息:
Cannot assign an abstract constructor type to a non-abstract constructor type.
解决办法:
运行时被注入的是HttpErrorHandler子类的一个数组:
更多Jerry的原创文章,尽在:“汪子熙”: