3

私はこの質問に対する多くの回答を読み、それらのさまざまなバリエーションを自分でも試しましたが、これまでのところ、WebStorm を満足させるものを見つけることができませんでした。問題のコードは次のようになります。

var slice = Array.prototype.slice;

/**
 * @param {function} func The original function.
 * @param {...*} args Bound argument values.
 * @returns {function} The partially applied function
 */
function partial(func /* args */) {
    var args = slice.call(arguments, 1);
    return function() {
        return func.apply(this, args.concat(slice.call(arguments)));
    };
}

上記のコードは、「JSDoc に記述されているパラメーター引数が関数シグネチャーに表示されません」という警告をトリガーします。WebStorm の内部には、Function.prototype.call などのオートコンプリートをサポートするために同様に注釈が付けられた JS ファイルがいくつかありますが、それらはライブラリとしてのみ使用されます。そのため、署名には何でも含めることができるため、最後に追加の引数を追加するだけです (この場合は「args」になります)。ただし、通常のコードでは、それは実際にはオプションではありません。

WebStorm が実際に苦情なしで受け入れるこの構文の形式はありますか、それともこれは単なるバグ/不足している機能ですか?

4

1 に答える 1

0

Michael Bollin の本の記憶が正しければ、指定したものではなく、JavaScript の特別な配列のような引数オブジェクト (すべての関数で使用可能) を介して追加の引数にアクセスする場合でも、関数シグネチャに 2 番目のパラメーターを追加する必要があります。署名で。

于 2013-09-24T12:56:23.680 に答える