【问题标题】:Angular 8: Property 'map' does not exist on type 'ArrayBuffer'Angular 8:“ArrayBuffer”类型上不存在属性“map”
【发布时间】:2019-12-24 19:40:30
【问题描述】:

我正在用 Angular 8 构建一个应用程序。我在 staff.service.ts 中有一个 API 调用,它获取员工列表。在我的 ts 文件中,我尝试使用 map 函数,但它会抛出一个错误,提示“ArrayBuffer”类型上不存在属性“map”。

staff.service.ts

import { HttpClient } from "@angular/common/http";
  public getStaffList(){
    let url = this.apiUrl + `api/v1/staff`;

    this.options = this.authService.getAuthInfo();
    return this.http.get(url, this.options)
  }

staff.component.ts

import { forkJoin } from 'rxjs';

    forkJoin(
      this.staffAdminService.getStaffList(),
      this.staffAdminService.getTitles(),

    ).subscribe(data => {
data[0].map({
})
})

【问题讨论】:

  • 你不能用这样的东西吗? .subscribe((data) => { // 对数据做一些事情。});
  • 我也在做同样的事情。只是我使用的是fork join,因为我必须同时使用多个服务。
  • 好的,但您将无法直接在数据位置使用地图
  • API 调用返回了什么?
  • @CaeSea json格式员工名单

标签: angular rxjs rxjs6 angular8


【解决方案1】:

这不是 Angular 的问题,而是 Typescript 的问题。您需要告诉您的 get 请求它使用的是什么类型:

public getStaffList(){
    let url = this.apiUrl + `api/v1/staff`;

    this.options = this.authService.getAuthInfo();
    return this.http.get<Staff[]>(url, this.options);
}

这是必要的,因为此方法有 so many different overloads。默认情况下,编译器会选择第一个适用的签名——返回ArrayBuffer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2016-08-25
    相关资源
    最近更新 更多