import {Observable} from 'rxjs'; import {Injectable} from '@angular/core'; export interface IDeactivateComponent { canExit: () => Observable | Promise | boolean; } @Injectable({ providedIn: 'root' }) export class CanExitGuard { constructor() { } canDeactivate(component: IDeactivateComponent): Observable | Promise | boolean { return component.canExit ? component.canExit() : true; } }