web-dev-qa-db-ja.com

割り当てまたは関数呼び出しが予期されていたが、代わりに式を見た

私はこれで完全にクールです JSLint エラー。どうすればそれを許容できますか?フラグまたはチェックボックスはありますか?

あなたは次のようなことをするときにそれを手に入れます:

v && arr.Push(v);

とは対照的に:

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

どちらもまったく同じことを行います。あなたが置く場合:

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

minifier に変換すると、とにかくこれまで縮小されます:

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

JSLintにはそれをオフにするオプションはないと思います。

JSHint (オプションの多いフォーク)にはオプションがあります:exprオプションは、「ExpressionStatementをプログラムとして許可する必要がある」と記載されています。

75
T.J. Crowder

次の行を追加して、その警告を無視できます。

/ * jshint -W030 * /

詳細については、こちらをご覧ください こちら

36
ReedD

JSLintにはこのオプションはありません。以下を使用して回避できます。

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

注意:dummyは、その後trueに評価されます。

別の回避策は次のとおりです。

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

ESLint を使用するときに、それを抑制する方法を探している人々。行のすぐ上に次のコメントを書くことで無視できます。

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

ファイルの一番上に次のコメントを配置することにより、ファイル全体の警告を抑制することもできます

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