首页 > 解决方案 > 解构对象并仅发送子变量

问题描述

我正在处理 Angular 中的 http 以向 API 发出请求,并且我试图找出一种更好的方法来发送我需要的对象。

问题:API 已经创建并接收数据为:{name: 'Rafael', id: 8, etc...}. 我需要发送的所有内容都直接在 JSON 的根目录中。

到目前为止,我一直在使用的解决方案非常耗时,因为我需要指定每个变量并为其赋值,即使它们已经具有相同的名称。

我在这里只使用 name 和 id 来举例说明,但有很多。

this.http.put<any>(`url`, {name: user.name, id: user.id})

但是,由于 API 设计用于接收具有巨大主体的请求,而我无法更改其中的任何内容,因此这确实很耗时。

然后我尝试按如下方式发送用户变量:

this.http.put<any>(`url`, {user})

但是请求的主体看起来像{user: {name, id...}}

我还尝试了一些对象解构(如下),效果更好,但仍然涉及相当多的工作。

({ name, id} = user);

有什么办法可以解构我的user并拥有一个只有它的变量的对象?

抱歉,如果我不够清楚,我对这个 Typescript 世界还是很陌生。

标签: typescript

解决方案


尝试使用扩展运算符并指定 as{...user}而不是{user}。这应该获取里面的所有键,user并在一个新对象中创建一个具有相同值的重复数组,然后http.put像上面那样传递给 。


推荐阅读