webentwicklung-frage-antwort-db.com.de

Erwartete einen Zuweisungs- oder Funktionsaufruf und sah stattdessen einen Ausdruck

Ich bin total cool mit diesem JSLint Fehler. Wie kann ich das tolerieren? Gibt es eine Flagge oder ein Ankreuzfeld dafür?

Sie bekommen es, wenn Sie Sachen machen wie: 

v && arr.Push(v);

im Gegensatz zu: 

if (v) {
    arr.Push(v);
}

Beide machen genau dasselbe. Wenn Sie setzen: 

window.test = function(v) {
    'use strict';
    var arr = [];
    if (v) {
        arr.Push(v);
    }
    return arr;
};

in den Minifier er minimiert es trotzdem:

window.test=function(a){var b=[];a&&b.Push(a);return b};
33
ryanve

Ich glaube nicht, dass JSLint eine Option hat, um das auszuschalten.

JSHint (eine Verzweigung mit mehr Optionen) hat jedoch eine Option dafür: Die expr-Option, dokumentiert als "ob ExpressionStatement als Programme zugelassen werden sollte".

74
T.J. Crowder

Sie können die folgende Zeile hinzufügen, um diese Warnung zu ignorieren: 

/ * jshint -W030 * /

Sie können mehr darüber lesen hier .

36
ReedD

In JSLint gibt es dafür keine Option. Sie können es umgehen mit:

var dummy = v && arr.Push(v);

NB: dummy wird danach zu true ausgewertet.

Eine andere Problemumgehung könnte sein:

function expression(statement) { 
 'use strict';
 return statement; 
}
expression(v && arr.Push);
9
KooiInc

Personen, die suchen, wie sie bei der Verwendung von ESLint unterdrückt werden können. Sie können ihn nicht mehr schreiben, indem Sie den folgenden Kommentar direkt über der Zeile schreiben.

// eslint-disable-next-line no-unused-expressions

Sie können die Warnung für die gesamte Datei auch unterdrücken, indem Sie den folgenden Kommentar ganz oben in der Datei platzieren

/* eslint-disable no-unused-expressions */
0
Shivam