Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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 类型';HttpEvent<;名称[]>;不可分配给类型';名称[]和#x27;_Angular_Typescript_Angular Httpclient - Fatal编程技术网

Angular 类型';HttpEvent<;名称[]>;不可分配给类型';名称[]和#x27;

Angular 类型';HttpEvent<;名称[]>;不可分配给类型';名称[]和#x27;,angular,typescript,angular-httpclient,Angular,Typescript,Angular Httpclient,这是我的代码: export interface act { id: number; name: string; } getAll(令牌:任意):无效{ this.http.get('http://localhost:4200/test,代币) .订阅( (val)=> this.list=val ); } 我在this.list=val上得到以下错误: 类型“HttpEvent”不可分配给类型“act[]”。类型“HttpSentEvent”缺少类型“act[]”中的以下属性:长度

这是我的代码:

export interface act {
  id: number;
  name: string;
}
getAll(令牌:任意):无效{
this.http.get('http://localhost:4200/test,代币)
.订阅(
(val)=>
this.list=val
);
}
我在
this.list=val上得到以下错误:

类型“HttpEvent”不可分配给类型“act[]”。类型“HttpSentEvent”缺少类型“act[]”中的以下属性:长度、pop、push、concat等

我试着在google上搜索,在stack上阅读,但没有成功。我发现了类似的问题,但有些没有解决,有些则不同


希望您能帮助我,提前谢谢。

您正在尝试发送请求正文,但获取的请求没有正文。
HttpClient.get()
的第二个参数不是主体,而是一组影响方法返回内容的选项

所以你应该使用POST或PUT而不是GET


您还应该避免使用
any
类型,以使您和编译器更容易理解所有内容(如果您使用正确定义的接口而不是
any
,则会提供更集中的错误消息)。

您尝试发送请求正文,但获取的请求没有正文。
HttpClient.get()
的第二个参数不是主体,而是一组影响方法返回内容的选项

所以你应该使用POST或PUT而不是GET


您还应该避免使用
any
类型,以使您和编译器更容易理解(如果您使用正确定义的接口而不是
any
,则会提供更集中的错误消息)。

val
的类型是什么?
令牌应该是什么?不要使用
any
类型,对您和编译器来说,一切都会更容易理解。val类型应该是act[]。Token是一个json,但它不会影响问题,我将删除它以防止混淆。Token对问题影响很大。正是它的存在导致了这个编译错误。您编辑的代码将不再有错误。GET请求没有正文。get()的第二个参数不是主体。这是一组影响方法返回内容的选项(除其他外)。如果您需要在正文中发送内容,那么您应该使用post或put。val的类型是什么?
token
应该是什么?不要使用
any
类型,对您和编译器来说,一切都会更容易理解。val类型应该是act[]。Token是一个json,但它不会影响问题,我将删除它以防止混淆。Token对问题影响很大。正是它的存在导致了这个编译错误。您编辑的代码将不再有错误。GET请求没有正文。get()的第二个参数不是主体。这是一组影响方法返回内容的选项(除其他外)。如果你需要在体内发送一些东西,那么你应该使用post或put。
public list!: act[];
getAll(token:any): void{
  this.http.get<act[]>('http://localhost:4200/test', token)
  .subscribe(
    (val) =>
      this.list = val
  );
}