Optional chaining – czyli jak skrócić kod ?.
const name = person.addresses?.[0].street?.name
Powyższy zapis wygląda dziwnie?
To tzw. optional chaining, czyli opcjonalne łączenie łańcuchowe. O ile nazwa może brzmieć tajemniczo to robi on mniej więcej coś takiego:
const name = person.addresses && person.addresses.[0].street && person.addresses.[0].street.name
natomiast ten zapis jest uproszczeniem tego:
let name;
if (person.address) {
if (person.address[0].street) {
let name = person.address[0].street.name
}
}
Jest więc to sposób na znacznie uproszczenie kodu. Znak ?. sprawdza czy wartość po lewej stronie jest null
lub undefined
. Jeśli tak, zatrzymuje się i zwraca undefined
. W innym przypadku wykonuje dalszą część kodu.
Dokładne przedstawienie w dzisiejszym odcinku: