ESLint mi sta dicendo questo messaggio di errore all'interno del mio modulo JS: errore non-non necessari-ternario uso non necessario di espressione condizionale per l'assegnazione di defaulterrore ESLint no-non necessari-ternario
L'errore viene nel get
metodo sulla dichiarazione return
return val ? val : defaultVal;
?
import ls from 'local-storage';
export default {
get(key, defaultVal = null) {
var val = ls(key);
return val ? val : defaultVal;
},
set(key, val) {
return ls(key, val);
},
remove(key) {
return ls.remove(key);
},
};
Qualche idea perché ottengo questo messaggio di errore? Ho trovato alcune risorse sul sito web di ESLint riguardo a questo messaggio di errore here ma si applica alle espressioni booleane e non riesco a capire perché dovrebbe applicarsi al mio codice ...
L'operatore ternario uno è più veloce. https://jsperf.com/default-assignment-by-uma/ –
@UmakantPatil Questi non sono equivalenti. –
@UmakantPatil Una volta che si fanno effettivamente fare la stessa cosa, le differenze sono (a) dipendenti dal browser e (b) entro 1-3%. È anche più breve e più chiaro; a meno che non ci si trovi in un ciclo di gioco molto stretto o simile è una micro-ottimizzazione inutile. In ogni caso, la domanda iniziale riguardava l'avviso ESLint, che per impostazione predefinita contrassegna i ternari nelle assegnazioni di valori predefiniti. ¯ \ (° _o)/¯ –