Como está com falta de código, fiz uma alteração no código do alert.service.ts, usando operador ternário e parâmetros opcionais, seria uma boa prática já ter isso no habito de fazer os códigos ainda mais por considerar este curso como de Nível Avançado.
export class AlertService{
alertSubject: Subject<Alert> = new Subject<Alert>();
keepAlive: boolean;
constructor(router: Router){
router.events.subscribe(event => {
(event instanceof NavigationStart ? (this.keepAlive ? this.keepAlive = false : this.clear()): false)
})
}
success(message:string, keepAlive?: boolean){
this.alert(AlertType.SUCCESS,message,keepAlive);
}
warning(message:string, keepAlive?: boolean){
this.alert(AlertType.WARNING,message,keepAlive);
}
danger(message:string, keepAlive?: boolean){
this.alert(AlertType.DANGER,message,keepAlive);
}
info(message:string, keepAlive?: boolean){
this.alert(AlertType.INFO,message,keepAlive);
}
private alert(alertType:AlertType, message: string, keepAlive: boolean = false){
this.keepAlive = keepAlive;
this.alertSubject.next(new Alert(alertType,message));
}
get() {
return this.alertSubject.asObservable();
}
clear(){
this.alertSubject.next(null);
}
}