ESLint mówi mi ten komunikat o błędzie wewnątrz mojego modułu JS: błędzie bez niepotrzebnych-trójargumentowy Niepotrzebne stosowanie wyrażenia warunkowego dla domyślnego przypisaniabłąd ESLint bez niepotrzebnych-trójargumentowy
Błąd przychodzi w get
metoda na oświadczeniu 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);
},
};
Każdy pomysł, dlaczego pojawia się ten komunikat o błędzie? Znalazłem pewne zasoby na stronie internetowej ESLint dotyczące tego komunikatu o błędzie here, ale dotyczy ono wyrażeń logicznych i nie mogę się domyślić, dlaczego miałoby to zastosowanie do mojego kodu ...
Ternary operator jeden jest szybszy. https://jsperf.com/default-assignment-by-uma/ –
@UmakantPatil Te nie są równoważne. –
@UmakantPatil Po tym, jak je zrobisz, robisz to samo, różnice są (a) zależne od przeglądarki i (b) w granicach 1-3%. Jest także krótszy i jaśniejszy; jeśli nie jesteś w bardzo napiętych pętlach gry lub podobnych, to jest to bezsensowna mikrooptymalizacja. W każdym razie pierwotne pytanie dotyczyło ostrzeżenia ESLint, które domyślnie oznaczało flagowanie trójników w domyślnych zadaniach wartości. ¯ \ (° _o)/¯ –