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
Aggiungere interattività lato server in Blazor 8
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Migliorare l'organizzazione delle risorse con Azure Policy
Utilizzare Model as a Service su Microsoft Azure
Utilizzare un service principal per accedere a Azure Container Registry
Creare alias per tipi generici e tuple in C#
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Disabilitare automaticamente un workflow di GitHub (parte 2)
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Generare un hash con SHA-3 in .NET
Generare token per autenicarsi sulle API di GitHub
Gestione dell'annidamento delle regole dei layer in CSS