gpt4 book ai didi

coffeescript - 解构赋值和空值合并

转载 作者:行者123 更新时间:2023-12-01 05:09:46 25 4
gpt4 key购买 nike

对于 CoffeeScript 中的单数赋值,您可以使用存在运算符:

name = obj?.props?.name

这会导致一段相当长的代码块,用于检查 objprops被定义。
name = typeof obj !== "undefined" && obj !== null ? 
(_ref2 = obj.props) != null ?
_ref2.name : void 0 : void 0;

考虑一个更复杂的解构赋值:
{name: name, emails: [primary], age: age} = Person.get(id)

如果对象不包含 emails属性,该代码将抛出 TypeError .有没有办法将存在运算符与这些类型的解构赋值一起使用?

这是我迄今为止最好的选择:
{name: name, emails: emails, age: age} = Person.get(id)
primary = emails?[0]

最佳答案

在 ES6 中,你可以这样做:

const {name: name, emails: [primary] = [], age: age} = Person.get(id)

如果 Person.get(id)返回一个空对象, primary将是 undefined (不抛出 TypeError)。

即将推出的 CoffeeScript 2 也支持此功能,您可以在 http://coffeescript.org/v2/#try 尝试。

关于coffeescript - 解构赋值和空值合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25851167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com