typescript - 解构对象并仅发送子变量
问题描述
我正在处理 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 世界还是很陌生。
解决方案
尝试使用扩展运算符并指定 as{...user}
而不是{user}
。这应该获取里面的所有键,user
并在一个新对象中创建一个具有相同值的重复数组,然后http.put
像上面那样传递给 。
推荐阅读
- c# - ASP.NET Core 2.2 MVC 将参数传递给授权策略
- javascript - 无法解决 TypeError (JS)
- flutter - 下载只能在我的flutter应用程序中查看的文件和加密文件
- reactjs - 将 Material-UI 转换为 react 中的类
- asp.net-core - 如何将客户端单击事件添加到 div 以调用 ASP.NET Core 2.2 Razor 页面中的方法
- ios - 使用 MVVM 和依赖注入实现应用程序状态恢复的最佳方法是什么?
- assembly - 使用 cpuid 复制用于提取缓存行大小的功能
- css - 将 css 变量存储在 db 中并发送到 Rails 中的前端
- typescript - 从已验证的类派生严格类型
- postgresql - jdbc - HikariCP:看到低插入吞吐量,而 DB/App cpu % 仍然很低