3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以改用nullish 合并運(yùn)算符。
let?finalConfig?=?preloadedConfig.configA????true;
或者,您可以使用hasOwnProperty
支票。
let?finalConfig?=?preloadedConfig.hasOwnProperty('configA')???preloadedConfig.configA?:?true;

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
在現(xiàn)代環(huán)境中(或使用轉(zhuǎn)譯器),我會(huì)使用空合并運(yùn)算符,僅當(dāng)左側(cè)為空或未定義時(shí),該運(yùn)算符才采用右側(cè):
let finalConfig = preloadedConfig.configA ?? true;
否則,使用條件運(yùn)算符:
let finalConfig = preloadedConfig.configA == null ? true : preloadedConfig.configA;

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以通過使用舊的 Object.assign 或現(xiàn)代的 destruct ... 屬性來使默認(rèn)規(guī)則更好一些。
即使為 null,這也會(huì)覆蓋 configA
const yourConfig = {
configA: true,
...preloadedConfig
}
使用舊的環(huán)境會(huì)是
Obejct.assign({configA: true},preloadedConfig)
編輯:
將空值作為默認(rèn)值是
const yourConfig = {
configA: true,
...Object.fromEntries(Object.entries(preloadedConfig).filter(([key,val])=>val!==null))
}
添加回答
舉報(bào)