2016-04-12 3 views
0

Im den folgenden Code verwenden, die arbeiten, aber wir ESlint verwenden, das gibt die Warnung:den js Code verbessern, basierend auf es Flusen

keine ungenutzte-expression eine Zuordnung oder Funktionsaufruf erwartet und stattdessen sah Ausdruck

Wie kann ich das vermeiden?

_createNew: function(Filecontent, config) { 
    var self = this; 
    config.position ? self._insertAfter(Filecontent, config) : 
     self._addAsLast(Filecontent, config); 
    return Filecontent; 
}, 

Wenn ich versuche, die Rückkehr an den Anfang zu setzen, funktioniert es nicht ... irgendeine Idee?

+1

Bitte. Für alle, die diesen Code in der Zukunft (einschließlich Ihnen) berühren: Verwenden Sie einfach if/else. Es macht keinen Sinn, den ternären Operator zu verwenden. – Prinzhorn

+0

Ternäroperator gibt einen Wert zurück, der empfangen werden muss. Ich habe es einfach beantwortet, ohne darüber nachzudenken. –

Antwort

4
_createNew: function(Filecontent, config) { 
    if(config.position) { 
     this._insertAfter(Filecontent, config) 
    } 
    else { 
     this._addAsLast(Filecontent, config); 
    } 

    return Filecontent; 
}, 
2

Statt Ihre ternäre:

config.position 
    ? self._insertAfter(Filecontent, config) 
    : self._addAsLast(Filecontent, config); 

Sie sollten eine if/else-Anweisung verwenden. Ich weiß, dein Weg ist ein One-Liner, aber es ist nicht lesbarer, und eslint Regeln gibt es aus einem Grund.

if (config.position) { 
    self._insertAfter(Filecontent, config) 
} else { 
    self._addAsLast(Filecontent, config); 
} 

Ein paar Zeilen mehr, aber viel besser lesbar für alle, die mit dieser Codebasis arbeiten.