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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Inizializzare i container in Azure Container Apps
Definire stili a livello di libreria in Angular
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Elencare le container images installate in un cluster di Kubernetes
Configurare policy CORS in Azure Container Apps
Evitare la command injection in un workflow di GitHub
Sfruttare lo streaming di una chiamata Http da Blazor
Generare token per autenicarsi sulle API di GitHub
Usare lo spread operator con i collection initializer in C#
Utilizzare database e servizi con gli add-on di Container App
Utilizzare gli snapshot con Azure File shares