Свойство «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), и это не сработало. Изображения:функция ошибка в терминале

0 ответов

Другие вопросы по тегам