如何混合条件运算符 (?:) 和解构函数返回?

问题描述 投票:0回答:1

我在类中有一个函数

MyClass.prototype.fn = function(){
    /* ... some impressive code */
    return {isA: value1, isB: value2};
}

最重要的是它返回一个对象

{isA: ?, isB: ?}
准备解构。

稍后我将拥有我的班级的实例:

MyClass myC;

但是,当我使用它时,MyClass 对象

myC
有可能为空。

所以我想使用条件运算符,以防万一

myC
为空。

我的问题是,有没有比直接创建临时对象并将

isA
isB
设置为 false 更好的方法来获取默认值?

即,这是最好的方法吗?

let {isA, isB} = myC ? myC.fn() : {isA: false, isB: false};
javascript conditional-operator deconstructor
1个回答
0
投票

是的,您可以在解构本身中设置默认值,然后回退到右侧的空对象:

let { isA = false, isB = false } = myC?.fn() ?? {}
© www.soinside.com 2019 - 2024. All rights reserved.