问题标签 [object-destructuring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ES6 如何在不分配变量的情况下使用对象解构
也许是一个奢侈的问题,但我正在寻找将对象参数选择传递给函数的最优雅的方式。这就是我想要实现的目标:
目前我正在使用这种解决方案:
对我来说,初始化参数然后创建一个新对象似乎有点麻烦。我想当大规模使用时,这也可能与性能问题有关?
所以我的问题实际上是关于对象解构的:解构运算符实际上返回了什么?引擎盖下发生了什么?它如何用作简单的oneliner?(文献和链接也非常感谢:D)
javascript - 打字稿中的对象解构
是否可以在没有 Typescript 抱怨的情况下解构来自函数调用的对象?
文件 1
- 反应组件 1
- 反应组件 2
在这里,我从 Typescript 收到以下抱怨
- 类型“null”上不存在属性“key1”。
- 类型“null”上不存在属性“key2”。
如何删除这些警告?
javascript - React useState hook:对象属性保持不变
我最近开始学习 react 并且我有一个包含登录表单的组件:
在这里,我试图在错误对象中设置用户名和密码的值,但由于某种原因,只设置了密码属性,用户名属性保持为空。我已经使用了对象解构,但它仍然没有设置值,请帮助。
javascript - 有没有办法解构一个 regex.groups 对象,输入一个元素 string|boolean 而不是推断的字符串?
我在 TypeScript 中有一个 RegExp,其中有一些组
我试图将其破坏为具有不同名称的变量。
这就是它的外观:
它推断和first
的类型。second
third
string
我只想second
保持“第二组在场”状态,second
所以我确实second = !!second
要得到 a boolean
,但这不会让我这样做,因为second
是 a string
。所以我希望second
能够保持一个布尔值。(类型string|boolean
:)
我知道我可以让它与更多行一起工作:
我还可以创建一个只保存布尔值的新变量,如下所示:
但是没有办法让它在破坏语句
中更改boolean
或设置它的类型吗?
两者都不string|boolean
let
也不
工作。
javascript - 为 const 对象的属性赋值是否会产生 typeError?
为什么上面的代码会产生以下错误?
PS:请忽略行号。
我尝试更改const data
为let data
并发生相同的错误。
typescript - 将类型断言与解构赋值一起使用的最佳方法是什么?
我有一些使用解构赋值的代码,如下所示:
根据TypeScript 类型断言文档,我想使用as
关键字来告诉 TS 编译器project
始终是 type Project
。
什么是正确的语法?我试过了:
但这是无效的。
javascript - 当至少一个已经声明并且至少一个没有声明时,我可以解构为多个变量吗?
我知道我可以将一个对象或数组解构为多个变量,无论它们都已分配还是未分配,但是当至少一个变量已经被声明时,是否可以一起重构多个变量,并且至少一个有没有?
1. 两者都未分配
这有效✅</p>
2. 均已分配
这也有效✅</p>
3. 至少一项已分配,一项未分配
这不起作用
我在这里使用的实际用例与此类似——我有一个 URL 路径,我想将其拆分为具有相同变量名及其查询字符串的路径(如果存在的话)。
这是我想做的,但出于同样的原因它不起作用。
到目前为止,这是我提出的一些解决方法,但它们要么迫使我运行该函数两次,要么将单个赋值行分成三个单独的行,并声明一个新变量只是为了重新赋值:
解决方法 #1:执行函数两次
解决方法 #2:声明临时变量
javascript - 对象解构花括号内的等号
我在 Graphql 指令定义中看到了这条语句:
我知道这部分const { resolve } = field;
意味着获取对象resolve
的属性field
并将其存储在局部变量resolve
中。但我第一次遇到的是这个= defaultFieldResolver
部分。等号在这里做什么?我已经完成了彻底的谷歌搜索,但也许我不知道要搜索的正确关键字,或者这可能是新事物。
这是我看到这个的文章的链接。
谢谢一堆。
node.js - 从中间件响应中解构赋值对象
我创建了一个如下中间件:
oauth 函数的响应/结果类似于:
现在在“index.js”文件中,我试图解构 oAuth 函数响应对象以访问属性access_token并将其放入 URL 中以发出发布请求,但我没有成功。我究竟做错了什么?
javascript - JavaScript,解构与赋值
我有这个代码:
我有一个改变的建议:
它们都是一行代码,但我想知道是否有解释为什么解构比第一个更好的编码方式。
如果代码是:
我知道这样会是最短的(不知道是否更好):
但我的问题涉及性能、安全性、可读性等原因。