为什么我收到"可观察类型<{}>无法分配给类型"可观察<对象[ ]>"错误?



我正在使用Ionic编写购物清单的应用程序,我目前正在尝试将mongoDB中的信息与我的Ionic应用程序集成。

但是,当我运行ionic serve时,浏览器中加载的唯一内容是Cannot GET /。我不确定我的代码哪里出错了。

编译时,出现错误

类型

Observable<{}> 不能分配给类型 Observable<object[ ]>

我认为问题出在getItems功能上。任何帮助将不胜感激!

getItems(): Observable<object[]> {
  return this.http.get(this.baseURL + '/api/groceries').pipe(
    map(this.extractData),
    catchError(this.handleError)
  );
}
您需要

确保this.extractData的类型与返回函数getItems(): Observable<object[]>相同。
这意味着如果您将从该 api 调用中获得对象数组,那么您需要将它们都作为: Array<{}>

对于最佳实践,您可以为数据类型创建一个接口,将其添加为可观察和变量类型,如下所示:

export interface CustomData {
        COUNT: number;
        NAME: string;
}

您的变量为 :
public extractData: CustomData;

您的函数返回为:
getItems(): Observable<CustomData> {

如果你不想做任何这些,你可以将函数的类型更改为any,如下所示:getItems(): Observable<any> {

相关内容

最新更新