簡體   English   中英

具有空值合並的 ES6 數組擴展運算符

[英]ES6 Array spread operator with nullish coalescing

當我嘗試這個時,我得到了Expression expected的錯誤:

const func = () => [0, 1]
const possibly_undefined_var = { var: 3 }

const var = [possibly_undefined_var?.var ?? ...func()]

預期結果:[3] 或 [0, 1]

我想知道在這個例子中是否有任何方法可以使用數組擴展運算符和空值合並。

我認為最清晰的方法是使用條件運算符:

const obj = possibly_undefined_var?.var;
const arr = obj ? [obj] : [...func()];

我想不出任何好的方法來替代objfunc在單個數組文字中的傳播,這不會造成不必要的混亂和冗長(我認為無論如何都需要條件運算符)。

如果obj可以是 false 而不是 null 或未定義,則需要更多代碼:

const obj = possibly_undefined_var?.var;
const arr = (obj === null || obj === undefined) ? [...func()] : [obj];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM