我想在我的 Auth
服务中实现简单的 canActivate
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:类'Auth'错误地实现了接口'CanActivate' . 属性'canActivate'的类型是不兼容的 . 类型'(下一个:ActivatedRouteSnapshot,state:ActivatedRouteSnapshot)=> Observable'不能分配给''(路由:ActivatedRouteSnapshot,状态:RouterStateSnapshot)=> boolean |承诺| ...安装前后“ . 参数'state'和'state'的类型是不兼容的 . 类型'RouterStateSnapshot'不能分配给'ActivatedRouteSnapshot'类型 . 属性'url'的类型不兼容 . 类型“字符串”不能指定为“UrlSegment []”类型 .
2 回答
将
state
的类型更改为RouterStateSnapshot
. 这是编译器唯一抱怨的事情 .我认为问题是声明状态:应该是RouterStateSnapshot