2016-02-29 20 views
5

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 returnreturn 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 ...

Odpowiedz

20

Nie potrzebujesz trójskładnikowego, gdy prosty val || defaultVal zrobi.

+0

Ternary operator jeden jest szybszy. https://jsperf.com/default-assignment-by-uma/ –

+0

@UmakantPatil Te nie są równoważne. –

+0

@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)/¯ –

Powiązane problemy