Utilizzare l'optional chaining operator di TypeScript per semplificare il controllo di oggetti null o undefined

di Stefano Mostarda, in HTML5,

Quando abbiamo un oggetto complesso con proprietà opzionali che a loro volta sono complesse e opzionali, ci ritroviamo a dover scrivere codice che prima di accedere a queste proprietà deve prima verificare che siano definite. Uno dei metodi più usati dagli sviluppatori TypeScript e JavaScript è quello che ricorre all'operatore && come nel seguente codice.

const data = {
  name: "Stefano Mostarda",
  address: {
    city: {
      id: 1,
      description: "Roma",
    },
    street: "piazza navona 1"
  }
}

if (data && data.address && data.address.city && data.address.city.id) {
  // codice
}

Sebbene perfettamente funzionante, questo codice è tutt'altro che comodo da manutenere. TypeScript 3.7 introduce il supporto per una nuova specifica EcmaScript: optional chaining operator (?).

if (data?.address?.city?.id) {
  // codice
}

L'operatore "?" prevede che se l'espressione a sinistra è null o undefined, allora l'espressione a destra non viene più valutata e viene restituito null protggendoci così da errori.
C'è un0importante cosa da sottolineare: l'operatore ? si comporta in modo leggermente diverso dall'operatore &&. Il primo verifica solo null e undefined, mentre il secondo verifica truthiness.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi