Ho riscontrato questo problema quando a una variabile manca un campo e all'utente viene visualizzato l'avviso che questa o quella variabile non ha questa o quella proprietà. Nel caso semplice è molto semplice.Quanti controlli contro null sono appropriati?
if(field)
doSomething(field.subField);
Tuttavia, in situazioni empiriche, mi sono trovato ad arrivare a questo assurdo eccesso di controllo.
if(!data
|| !data.records
|| !data.records[0]
|| !data.records[0].field
|| !data.records[0].field.id)
return null;
doSomething(data);
Voglio dire, c'mon - thingy pipe-ish sembra se io sono un idraulico, non è sviluppatore. Quindi, ho la sensazione molto forte che i miei assegni, pur essendo sufficienti, possano essere un po 'eccessivi. C'è una convenzione in JS su quando eseguire un controllo?
Se hai bisogno di farlo costantemente, il tuo codice probabilmente ha più problemi di quanto pensi. – Prinzhorn
C'è una libreria che può aiutare: https://github.com/jclem/steeltoe – epascarello
Come usare un ['try/catch'] (https://developer.mozilla.org/en-US/docs/JavaScript /Reference/Statements/try...catch)? – Blazemonger