JS/ES6: Destructuring undefined
Ich bin mit einigen destructuring wie diese:
const { item } = content
console.log(item)
Aber wie sollte ich damit umgehen content === undefined
- das wirft einen Fehler?
Den 'alten' Weg würde wie folgt Aussehen:
const item = content && content.item
So, wenn content
ist nicht definiert -> item
auch undefiniert sein.
Kann ich tun etwas ähnliches mit destructuring?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie short-circuit-evaluation zu liefern Verzug, wenn
content
ist ein falsy-Wert, in der Regelundefined
odernull
in diesem Fall.JS:
Weniger idiomatische (siehe diesen Kommentar) Weg ist die Verbreitung der Inhalte in ein Objekt vor destructuring es, weil
null
undundefineds
- Werte werden ignoriert.JS:
Wenn Sie destructuring Funktion params-Sie können eine Standard - (
= {}
im Beispiel).Hinweis: Der Standardwert würde nur angewendet werden, wenn der destructured param ist
undefined
, was bedeutet, dass destructuringnull
Werte wird ein Fehler ausgelöst.JS:
Oder auch ein default-Wert für die
item
Eigentum, wenn das input-Objekt-enthalten nicht die EigenschaftJS:
unidiomatic
Ihrer Meinung nach?for of
denn es liest sich schöner und besser funktioniert als.forEach
, aber Sie haben die gleiche Geschwindigkeit bei heutigen Motoren). Es fühlt sich unidiomatic, weil es einfach... sieht ganz komisch aus in meinen Augen.{ ...content }
ist bekannt als ein idiom für "stellen Sie eine flache Kopie voncontent
", nicht "...oder ein leeres Objekt, wenn es nicht definiert ist".