Observable не может быть назначен проблеме интерфейса типа в angular

У меня ниже интерфейс и модель. Теперь я хотел бы получить наблюдаемое после вызова API. Код ниже:

export class RegistrationListResultModel extends TaskResultModel {
    Users!: UserRegisterModel[];
}

export class UserRegisterModel {
    Id?: number;
    FirstName?: string;
    LastName?: string;
    Email?: string;
    Mobile?: string;
    OrgId?: number;
    Username?: string;
    Password?: string;
    PhotoUrl?: string;
    IsActive?: boolean;
    TimeZoneId?:string;
}

interface SearchResultUserRegistrationInfo {
    userLists: UserRegisterModel[];
    total: number;
}

У меня есть функция ниже, которая вызывает API и возвращает результат как наблюдаемый.

private _search(): Observable<SearchResultUserRegistrationInfo> {
        return this.service.get<RegistrationListResultModel>(`${this.apiPATH}lists`).pipe(map(data => {
            const {
                sortColumn,
                sortDirection,
                pageSize,
                page,
                searchFirstName,
                searchLastName,
                searchEmail,
                searchMobile,
                searchUsername
            } = this._state;

            let allMemberLists: UserRegisterModel[] = [];

            if (data) {
                allMemberLists = data.Users;

                // 1. sort              
                let userLists = sort(allMemberLists, sortColumn, sortDirection);

                const total = userLists.length;

                // 3. paginate
                userLists = userLists.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize);

                return { userLists, total };
            }
            else {
                // In case data is null
                return null
            }
        }));
    }

Но я получаю следующие ошибки:

Type 'Observable<{ userLists: UserRegisterModel[]; total: number; } | null>' is not assignable to type 'Observable'. Type '{ userLists: UserRegisterModel[]; total: number; } | null' is not assignable to type 'SearchResultUserRegistrationInfo'. Type 'null' is not assignable to type 'SearchResultUserRegistrationInfo'.ts(2322)

Может ли кто-нибудь помочь мне решить ошибки

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто измените подпись вашего метода _search:

private _search(): Observable<SearchResultUserRegistrationInfo | null> { ... }

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