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
Determinare lo stato di un pod in Kubernetes
Eseguire una query su SQL Azure tramite un workflow di GitHub
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Configurare policy CORS in Azure Container Apps
Utilizzare politiche di resiliency con Azure Container App
Creare form tipizzati con Angular
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Migrare una service connection a workload identity federation in Azure DevOps
Utilizzare i primary constructor di C# per inizializzare le proprietà
Utilizzare ChatGPT con Azure OpenAI
Disabilitare automaticamente un workflow di GitHub
C# 12: Cosa c'è di nuovo e interessante