Observable is not assignable to type interface 问题 angular
Observable is not assignable to type interface problem in 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 和 returns 结果作为可观察结果。
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)
谁能帮我解决错误
只需更改您的 _search 方法的签名:
private _search(): Observable<SearchResultUserRegistrationInfo | null> { ... }
我有以下界面和模型。现在我想在调用 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 和 returns 结果作为可观察结果。
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)
谁能帮我解决错误
只需更改您的 _search 方法的签名:
private _search(): Observable<SearchResultUserRegistrationInfo | null> { ... }