我正在尝试在canActivate
服务
Auth
import {CanActivate,ActivatedRouteSnapshot} from '@angular/router';
export class Auth implements CanActivate{
canActivate(
next: ActivatedRouteSnapshot,
state: ActivatedRouteSnapshot
): Observable<boolean> {
return Observable.of(true);
}
}
收到此错误
src / app / modules / user / auth.ts(13,14)中的错误:错误TS2420:类 &#39;验证&#39;错误地实现界面&#39; CanActivate&#39;。种类 财产&#39; canActivate&#39;是不相容的。 键入&#39;(下一个:ActivatedRouteSnapshot,状态:ActivatedRouteSnapshot)=&gt;观察到的&#39;不能转让给 type&#39;(route:ActivatedRouteSnapshot,state:RouterStateSnapshot)=&gt; 布尔值|承诺| ...安装前后&#39 ;. 参数类型&#39;状态&#39;并且&#39;州&#39;是不相容的。 输入&#39; RouterStateSnapshot&#39;不能分配到&#39; ActivatedRouteSnapshot&#39;。 财产类型&#39; url&#39;是不相容的。 输入&#39; string&#39;不能分配给&#39; UrlSegment []&#39;。
答案 0 :(得分:4)
我认为问题是状态声明:应该是RouterStateSnapshot
interface CanActivate {
canActivate(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean
}
答案 1 :(得分:2)
将state
的类型更改为RouterStateSnapshot
。这是编译器唯一抱怨的事情。