如何解构 JavaScript 中可能未定义的嵌套对象

Pay*_*ian 4 javascript

我有一个返回如下对象的函数:

{
    data: {key1: value1, ...},
    errors: [...]
}
Run Code Online (Sandbox Code Playgroud)

我可以key1用以下内容提取:

const { data: { key1 }} = myFunction()
Run Code Online (Sandbox Code Playgroud)

但是,有时data未定义会导致解构失败。

我查看了解构示例,但无法弄清楚如何在可能未定义的key1情况下退出。data

有没有办法在执行解构时分配默认值{}todata以免失败?

Nin*_*olz 6

您可以采用默认对象。

const
    myFunction = () => ({}),
    { data: { key1 } = {} } = myFunction();

console.log(key1);
Run Code Online (Sandbox Code Playgroud)