簡體   English   中英

在 Javascript 中安全地從對象中提取屬性

[英]Safely extracting property from object in Javascript

我有一個這個功能:

const someVar = someOtherVar.pipe(
        // filter((data) => data && !data.loading)   // Works
        filter(({ loading }) => !loading),  // Doesn't work if data is Null
);

現在,正如評論中提到的,注釋代碼在每種情況下都有效,但我想讓它以第二種方式工作。 可能存在數據為空的情況。 所以,我會收到這個錯誤

類型錯誤:無法讀取 null 的屬性“正在加載”

有沒有辦法安全地解構 JavaScript 對象?

這里有幾個選項可以使其與您的第二個選項一起使用。

filter(x => x).filter(({ loading }) => !loading)

或者

map(x => x || {}).filter(({ loading }) => !loading)

這兩個選項可能不如您注釋的代碼有效,但這些可能會提高可讀性。

null不是一個對象,這就是為什么你不能安全地解構它 :-) 不,你不能在這里使用解構。

最接近有用的語法特征是data => !data?.loading from the optional chaining proposal ,但這相當於!(data && data.loading)而不是data && !data.loading

暫無
暫無

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

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