3

次のように関数をローカルにラップすることにより、jslint から (必要な) 未使用のパラメーター エラーを取り除くことに関する多くのスタック オーバーフローの回答を見てきました。

/*jslint unparam: true*/

//my function with unused parameters

/*jslint unparam: false*/

ただし、これを実行しようとすると、代わりに JSLint から次のエラーが発生します。

 Unexpected '/*jslint'.

次のようなあらゆる種類の空白を試しました。

 /* jslint unparam: true */
 /*jslint unparam : true */
 /* jslint unparam: true*/

しかし、そのような変更がまったく効果があるとすれば、それは jslint インライン ディレクティブがまったく見られず、代わりに未使用のエラーが残っていることです。

少しいじってみたところ、処理中にJSLintが他のモードになっていることが問題であると思われます。問題の関数は、次のようなカスタム クラス宣言内にあります。

var myClass = CreateClass({
    Constructor : function myClass()
    {
        //initialize
    },

    Parent : null,

    Definition :
    {
        //member functions that will be copied into prototype,
        //  be added to custom chaining functionality, etc go here

        /*jslint unparam: true*/
        doSomething : function doSomething(inUnusedInterfaceParam, inUsedParam)
        {
            //do something with inUsedParam, but NOT inUnusedInterfaceParam
        }
        /*jslint unparam: false*/
    }
});

そして、ディレクティブをどのように動かしても機能しません。たとえば、次のバリエーションも試しました。

doSomething : /*jslint unparam: true*/
function doSomething(inUnusedInterfaceParam, inUsedParam)
{
    //do something with inUsedParam, but NOT inUnusedInterfaceParam
}
/*jslint unparam: false*/

この問題は、私が JSLint に対して真の愛憎関係を築く原因となっている多くの原因の 1 つにすぎません。おそらく、ある時点で JSHint を優先してビルドから削除することになるでしょうが、そのために時間を割くつもりはまだありません。それまでの間、jslint をここで黙らせる方法はありますか? そして、現在行っているように、jslint が独自のインライン ディレクティブについて不平を言う原因となる条件は何ですか?

4

1 に答える 1