diff --git a/modules/@angular/router/src/router.ts b/modules/@angular/router/src/router.ts index b314711bc0..1b18b566c5 100644 --- a/modules/@angular/router/src/router.ts +++ b/modules/@angular/router/src/router.ts @@ -400,7 +400,9 @@ class PreActivation { if (s instanceof CanActivate) { return this.runCanActivate(s.route); } else if (s instanceof CanDeactivate) { - return this.runCanDeactivate(s.component, s.route); + // workaround https://github.com/Microsoft/TypeScript/issues/7271 + const s2 = s as CanDeactivate; + return this.runCanDeactivate(s2.component, s2.route); } else { throw new Error('Cannot be reached'); }