JavaScriptで関数引数を未使用としてマークする標準的な方法はありますか。Rubyでアンダースコアを使用してメソッド引数を開始するのに似ていますか?
動作する例があります。これは、jQueryの$.each
でかなり一般的です。ここでは、反復コールバックでインデックスだけでなく値だけを必要とするコードを記述しています($.each
はArray#forEach
)に対して後方:
$.each(objectOrArrayLikeThing, function(_, value) { }
// Use value here
});
_
を使用するのが標準的な方法に最も近い方法です。もちろん、他にもたくさんあります-とにかくその目的を反映した名前を付けます(index
) 、それをunused
などと呼びます.
複数のパラメーターを無視する必要がある場合、同じ識別子を繰り返すことはできません( strictモードでは許可されていません 、これは全員のデフォルトである必要があり、モジュールおよびclass
でデフォルトです)構造体)、したがって、あなたは_0
と_1
または_
と__
などのようなことをします。
破壊をサポートするブラウザを使用すると、次のことができます。
function ({}, {}, value) {
// console.log(value)
}
同じ名前の複数の引数の問題を回避し、メソッドを_
(lodash、アンダースコアなど)に割り当てるライブラリで問題を発生させないという点で、これは一種のきちんとしたものです。
このアプローチの1つの問題は、undefined
型またはnull
型の未使用の引数がスローされることです。
undefined
の解決策の1つは、デフォルトのパラメーターを使用することです。
function ({}={}, {}={}, value) {
// console.log(value)
}
悲しいことに、null
にこのような簡単に適用できるソリューションはありません。
私はこの構文をお勧めします:
function(_index, value) {...}
lodash変数を隠さず、使用される場合に備えて引数の説明を保持します。
VS Codeはこれらの名前も適切に強調表示し、これらの未使用の引数は自動修正コードの匂いがした後に削除されません
function
arguments
オブジェクトの使用はどうですか?
function third() { const [,,thirdArg] = arguments;
return thirdArg;
}
console.log(third(1,2,3));