繁体   English   中英

类型“ void”不可分配给类型“ User []”

Type 'void' is not assignable to type 'User[]'

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我无法理解此错误,为什么它不允许我将数据发布到用户数组,以便可以从html访问它?

这是组件

export class Service1Component implements OnInit {

  selectedUser: User;
  users: Array<User>;

 constructor(private _userService: UserService) { }

 ngOnInit() {
   this._userService.getUsers()
   .subscribe(resUserData => {
     this.users = resUserData
   });
 }

 onSelectUser(user:any){
   this.selectedUser = user;
 }
}

这是我要订阅的服务

export class UserService {

 private _getUrl = '/api/users'

 constructor(private _http: Http) { }

 getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => {
     response.json();
   })
 }
}

在此处输入图片说明

5 个回复

您错过了从函数中返回的功能,而该函数在您的组件中被视为void

getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => {
    return response.json();   // add return statement
   })
}

只需初始化您的用户

users : User[] = [];

编辑

编辑完问题后,我发现您错过了返回服务的答复

 return this._http.get(this._getUrl)
   .map((response: Response) => {
     return response.json();
 })

您的get answers方法不会返回任何内容,因为map函数不会返回。 您甚至不需要map函数,因为' HttpClient是自动完成的。 尝试这个

getUsers() { 
  return this._http.get(this._getUrl);
}

如果箭头函数返回单个值,则无需使用return语句

getUsers(){
   return this._http.get(this._getUrl)
   .map((response: Response) => response.json())
 }

如果使用HttpClient,则不需要.map((response: Response) => response.json())它会在内部自动调用response.json()。

您应该将订阅范围划分为一个块:

.subscribe(resUserData => {
    this.users = resUserData;
});
2 类型 void 不可分配给数组

我正在尝试创建一种方法,该方法从数组的每个元素的字符串(包含数字的字符串)中删除所有零; 我收到此错误“类型 void 不可分配给程序 [] ...

2020-07-15 12:19:13 4 224   angular
4 类型Void []数组不可分配给类型Void

我希望type void []与void类型兼容。 具体来说,使用Promise.all时。 打字稿错误: 'Type'Promise &lt;void []&gt;'不能分配给'Promise &lt;void&gt;'。 类型'void []'不能分配给'void'类型 ...

7 “void”类型的“this”上下文不可分配给“Observable”类型的方法“this” '

我在 angular 的自动完成示例中收到此错误。 这是代码: 错误是在 startWith 上产生的。 我在第二个 val 中也遇到错误。 它说: “{}”类型的参数不可分配给“string”类型的参数 功能是: 提示:有些东西是混合控制或进口的。 我不确定但是当我创建一个新组件 ...

10 类型 'void' 不可分配给类型 'ObservableInput<{}>'

这个错误在我迁移到 TS 2.2.2 后开始出现,所以我假设这就是问题所在......代码没有停止工作,但现在我收到了这个错误,我尝试了一些事情,比如返回一个空的 observable ,捕获重新抛出的异常并返回 object,似乎没有任何效果。 为什么现在会发生这种情况? 难道它不应该理解我正在 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM