【发布时间】:2021-10-20 16:23:06
【问题描述】:
我正在学习 rxjs,但遇到了这个错误。
我有以下方法
getCourseById(id: number): Observable<Course> {
return this.http.get<Course[]>('the-api').pipe(
map(courses =>
courses.filter(course => course.id === id)
)
)
}
我调用特定的 API 端点,获取整个响应,然后使用 map 过滤该集合并获取 id 等于参数 id 的课程。
该函数返回一个 Course 类型的 Observable。
然而,在控制台中我看到:
error TS2322: Type 'Observable<Course[]>' is not assignable to type 'Observable<Course>'.
Type 'Course[]' is missing the following properties from type 'Course': id, name, url, description
27 return this.http.get<Course[]>('the-api').pipe(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28 map(courses =>
~~~~~~~~~~~~~~~~~~~~~
...
30 )
~~~~~~~~~
31 )
~~~~~
我不知道如何解决它。 我会很感激帮助。 谢谢
【问题讨论】:
-
您告诉
HttpClient获取Course项目的数组,具有指示单个实例是返回的方法签名,并且您永远不会将获取的数组转换为单个Course元素.
标签: javascript angular rxjs