我目前正在学习教程,但我陷入了这个错误:
TS2345:“OperatorFunction
WorkerData 是一个简单的接口,位于同一文件中:
export interface WorkerData {
items: Worker[],
meta: {
totalItems: number;
itemCount: number;
itemsPerPage: number;
totalPages: number;
currentPage: number;
},
links: {
first: string;
previous: string;
next: string;
last: string;
}
};
返回此错误的函数是这样的:
findAll(page: number, size: number): Observable<WorkerData> {
let params = new HttpParams();
params = params.append('page', String(page));
params = params.append('limit', String(size));
return this.http.get('/api/worker', {params}).pipe(
map((userData: WorkerData) => userData),
catchError(err => throwError(err)),
)
}
这个功能。应该返回带有 Worker 数组和一些元数据的 JSON。如果我将 map((userData: WorkerData) => userData) 更改为 map((userData: any) => userData), r 如果我将接口中的所有参数设置为不是 meccecary,它会起作用,但会返回如下所示的内容:
_Observable {
source: _Observable {
source: _Observable {
source: [_Observable],
operator: [Function (anonymous)]
},
operator: [Function (anonymous)]
},
operator: [Function (anonymous)]
}
如果有人好奇,该教程系列称为博客项目 V-09。也许这会有所帮助如果您需要更多信息,我会很高兴提供。如果需要的话我也可以将其发布到 git。预先感谢
默认的http.get方法不知道返回什么类型,所以尝试下面的代码,这是基于Angular官方文档的
return this.http.get<WorkerData>('/api/worker', { params }).pipe(
map((userData: WorkerData) => userData),
catchError(err => throwError(err)),
);