次のように関数をローカルにラップすることにより、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 が独自のインライン ディレクティブについて不平を言う原因となる条件は何ですか?