0

4 つのサブ配列の配列を返す非同期関数があります。次に、その配列を変数に分割します。これらの新しい変数をインテリセンスに認識させようとしていますが、実際には機能していません:

asyncGet().then(function(results){
    // results is an array of 4 arrays

    /// <var name="arrayOfA" type="Array" elementType="A" />
    var arrayOfA = results[0];
    /// <var name="arrayOfB" type="Array" elementType="B" />
    var arrayOfB = results[1];
    /// <var name="arrayOfC" type="Array" elementType="C" />
    var arrayOfC = results[2];
    /// <var name="arrayOfD" type="Array" elementType="D" />
    var arrayOfD = results[3];
})

ご覧のとおり、標準の XML インテリセンス ドキュメントを使用して変数を文書化しようとしましたがarrayOfAarrayOfD.

ただし、ドキュメントと変数の初期化を保持し、変数に何も割り当てないと、適切なインテリセンスが得られます。

例えば

    /// <var name="arrayOfA" type="Array" elementType="A" />
    var arrayOfA;

arrayOfAそこでインテリセンスを取得しますが、明らかにこの時点では実際の結果は割り当てられません。

4

1 に答える 1

1

「値」パラメーターを使用して、結果自体の構造を文書化することができるようです。

例えば

asyncGet().then(function(results){
    /// <param name="results" value="{0:new A(), 1:new B(), 2:new C(), 3:new D()}">four-part return array</param>

「値」XML コメントは誤称です。これにより、Intellisense は渡された Javascript リテラルを直接実行して、識別子の型構造を決定します (私の表記が少しさびていたらすみません)。

うまくいく保証はありません、あくまでも推測です。Documenting Arrays in JSDoc TypeDefs (34864291)をチェックして、 function process_response(response)の下でこの例を確認してください。

結果配列に適切な型情報を指定すると、それを ArrayOf 変数に割り当てるときに Intellisense が混乱することはなくなるでしょう。

于 2016-04-20T23:49:08.020 に答える