6

ハンドラーのパラメーターで JSDoc ヒントを使用しようとしていますが、機能しません。@type と @param で試しましたが、うまくいきません。公式の JSDoc には、この問題に関する有益な情報は含まれていません。

これは動作しません:

    socket.on( "data",
    /**
     * @param request {Object}
     * @param request.code {Number}
     * @param request.id {Number}
     * @param request.sr {String}
     */
    function( request )
    {});
4

3 に答える 3

3

複雑な「typedef」および「property」タグを使用できます。文書化: http://usejsdoc.org/tags-typedef.html ただし、「~」文字は、WebIde が型注釈をリンクするのを妨げているようです。(チルダなしで単純な typedef MyType アノテーションを使用するだけで機能します)

ところで、Google Closureの方法:

/** @typedef {{code: Number, id: Number, str: String}} **/
SocketRequest;

socket.on("data", handler);

/**
 * @param {SocketRequest} req
 */
function handler(req) {
    //req will be hinted here
}

この jsdoc アノテーションは特に Google Closure 用ですが、ヒントを与えるためだけに Closure なしで使用できます。(2012 年 8 月以降は動作するはずです: http://blog.jetbrains.com/webide/2012/08/closure-syntax/ )

于 2014-07-16T14:19:48.840 に答える
1

これは漠然とした質問なので、私の推測は次のとおりです。

socket.on( "data",
/**
 * @param request {Object}
 * @param request.code {Number}
 * @param request.id {Number}
 * @param request.sr {String}
 */
function( request )
  typeof request.id == 'number';
  console.log(request.sr); // will print out the string
{});

コメントは、リクエストオブジェクトで期待されるデータ/キーを説明するだけです。

于 2013-05-03T04:07:03.277 に答える