角度http响应中的大整数(长整数)被四舍五入

时间:2018-05-01 14:48:24

标签: angular typescript http casting

我正在调用一个返回

的Web服务
[
    {
        "product_id": 4253579243953800463,
        "timestamp": 1525107472,
        "event_type": "PRODUCT_VIEW",
        "event_count": 1
    },
    {
        "product_id": 788410946016999754,
        "timestamp": 1525107472,
        "event_type": "PRODUCT_VIEW",
        "event_count": 1
    }
]

我已经在我的角度代码中编写了一个服务来调用这个后端服务

  getLastRecommendations(): Observable<UserProductEvent[]> {
   return this.http.get<UserProductEvent[]>(url, HTTP_OPTIONS)
  }

我看到产品ID的类型为long的响应,其值大于javascript中的Number.MAX_SAFE_INTEGER,因此我想强制将产品ID视为字符串。 否则值将四舍五入为

[
    {
        "product_id": 4253579243953800700,
        "timestamp": 1525107472,
        "event_type": "PRODUCT_VIEW",
        "event_count": 1
    },
    {
        "product_id": 788410946016999800,
        "timestamp": 1525107472,
        "event_type": "PRODUCT_VIEW",
        "event_count": 1
    }
]

我尝试在我的打字稿界面声明中将product_id的类型更改为字符串,但它仍然不起作用。

如何强制打字稿/ javascript将字段视为字符串?

有人可以帮忙吗?

export interface UserProductEvent {
    product_id: string;
    timestamp: number;
    event_type: string;
    event_count: number;
}

我无法改变后端。 :(

0 个答案:

没有答案