Свойство «canActivate» в типе «AuthorizationGuard» не может быть назначено тому же свойству в базовом типе «CanActivate».
Я обновил свое приложение Angular до Angular 14, и когда я попытался запустить «ng build», я столкнулся с этой ошибкой:
«Свойство «canActivate» в типе «AuthorizationGuard» не может быть назначено тому же свойству в базовом типе «CanActivate».
Это функция:
public canActivate(): Observable<boolean> {
return new Observable<boolean>(obs => {
combineLatest([this.appService.getAppsForUserByRoleObservable(),
this.userservice.getUserInfoObservable(), this.contentService.getContentObservable()]).subscribe(context => {
const userAppIds = context[0].map(entry => entry.apps.map(app => app.appId))
.reduce((acc, val) => acc.concat(val), []);
if (userAppIds.length > 0 && (userAppIds.indexOf(this.appInfoService.getAppInfo().appId) > -1)) {
this.helpService.getHelpMenuLinks();
obs.next(true);
} else {
this.auditService.registerEvent(AuditEventEnum.AUDIT_EVENT_002);
obs.next(false);
}
}, () => {
this.auditService.registerEvent(AuditEventEnum.AUDIT_EVENT_002);
obs.next(false);
});
});
}
Я нашел аналогичный вопрос SO здесь: TS2416: свойство «canActivate» в типе «MyGuard» не может быть назначено тому же свойству в базовом типе «CanActivate».
Но, по словам этого человека, удаление «типа возврата (Observable | Promise | boolean) из canActivate» устранило проблему, но я попытался сделать то же самое (удалив Observable), и это не сработало. Изображения:функция ошибка в терминале