Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular &引用;没有与此调用匹配的重载“;在第11页_Angular_Typescript - Fatal编程技术网

Angular &引用;没有与此调用匹配的重载“;在第11页

Angular &引用;没有与此调用匹配的重载“;在第11页,angular,typescript,Angular,Typescript,我正在做一个角度教程,当我在home.component.ts文件中遇到以下错误时: 没有与此调用匹配的重载。 重载第1个(共5个),(观察者?:PartialObserver):订阅”,出现以下错误。 类型为“(data:any[])=>void”的参数不能分配给类型为“PartialObserver”的参数。 属性“complete”在类型(数据:any[])=>void中丢失,但在类型“CompletionObserver”中是必需的。 重载第2个,共5个,'(下一个?:(值:HttpRe

我正在做一个角度教程,当我在
home.component.ts
文件中遇到以下错误时:

没有与此调用匹配的重载。 重载第1个(共5个),(观察者?:PartialObserver):订阅”,出现以下错误。 类型为“(data:any[])=>void”的参数不能分配给类型为“PartialObserver”的参数。 属性“complete”在类型(数据:any[])=>void中丢失,但在类型“CompletionObserver”中是必需的。 重载第2个,共5个,'(下一个?:(值:HttpResponse)=>void,错误?:(错误:任意)=>void,完成?:()=>void):订阅',出现以下错误。 类型为“(data:any[])=>void”的参数不能分配给类型为“(value:HttpResponse)=>void”的参数。 参数“数据”和“值”的类型不兼容。 类型“HttpResponse”缺少类型“any[]”中的以下属性:长度、弹出、推送、concat等

我已经查过了,但是找不到任何解决这个问题的办法。我曾尝试在
tsconfig.json
中禁用
strict
noImplicitAny
noImplicitReturns
,但他们没有解决此问题。我更倾向于在
tsconfig.json
文件中将所有三个设置保持在
true
的同时,是否有解决此问题的方法

任何帮助都将不胜感激

谢谢

编辑:在AJAX调用后处理数据时,在
home.component.ts
文件中发生错误:

this.dataService.sendGetRequest().subscribe(data: any[] => {
      this.products = data;
    });
  }

第一:如果你把你的相关代码放在问题本身,而不仅仅是stackblitz的链接,那将是一种礼貌。错误消息给您的第一个信息是:哪个文件、哪个行、哪个位置(
src/app/home/home.component.ts(19:49)
)。那是

    this.dataService.sendGetRequest().subscribe((data: any[]) => {
//                                              ^ about here
第二:在HttpClient调用中放入
观察:“response”
。在这种情况下,您不会在响应对象中获得简单的
数据:any[]
,而是一个完整的
HttpResponse
对象。您需要访问其
主体
属性。我建议加上

map({ body } => body)

DataService

中的
sendGetRequest
中的管道末端,解决方案:在
subscribe
方法中将
any[]
更改为
any

this.dataService.sendGetRequest().subscribe(data: any => {
      this.products = data;
    });
  }

永远不要指定回调参数的类型
.subscribe((数据:any[])=>
比无意义更糟糕。Write
.subscribe(data=>
有效。谢谢。首先,是的,你是正确的。我应该把相关的代码放在问题中。对此我深表歉意。关于在管道末端添加映射,你的意思是将其链接到管道上吗?抱歉,但我是RxJS新手。谢谢。@MA_Dev是的,只需在
重试后添加
映射作为最后一个操作符即可
catchError
tap
。我做了以下操作,但它返回
未定义的
返回this.httpClient.get(this.REST_API_服务器,{params:new HttpParams({fromString:“\u page=1&\u limit=20”}),观察:“response”})。管道(重试(3),catchError(this.handleError),tap(res=>{this.parseLinkHeader)(res.headers.get('Link');})、map(res=>{res.body}));
我做错了什么?感谢
map(res=>{res.body})
-如果您这样编写,JS引擎会将
{}
解释为函数体的分隔符(并且它没有显式的返回语句)。或者
map(res=>{return res.body;})
,或者干脆
map(res=>res.body)
。它成功了。非常感谢您的帮助。