Безопасное извлечение имущества из объекта в Javascript - PullRequest
1 голос
/ 23 января 2020

У меня есть эта функция:

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

Теперь, как уже упоминалось в комментариях, закомментированный код работает в каждом случае, но я хочу, чтобы он работал вторым способом. Может случиться так, что данные будут нулевыми. Итак, я получу эту ошибку

TypeError: Невозможно прочитать свойство 'loading' из null

Есть ли способ безопасной деструктуризации JavaScript объекта?

Ответы [ 2 ]

2 голосов
/ 23 января 2020

Вот несколько опций, чтобы заставить его работать с вашим вторым вариантом. может дать читабельность.

1 голос
/ 23 января 2020

null не является объектом, поэтому вы не можете безопасно его деструктурировать :-) Нет, вы не можете использовать здесь деструктурирование.

Наиболее близкая к полезной синтаксическая функция будет data => !data?.loading из необязательная цепочка предложение , но это эквивалентно !(data && data.loading), а не data && !data.loading.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...