我如何在webstorm中使用JSDoc @param作为回调处理程序的参数?

Dis*_*pol 5 javascript jsdoc webstorm

我试图在处理程序的参数上使用JSDoc提示,但它不起作用.我尝试过@type和@param但它不起作用.官方JSDoc没有包含有关此问题的任何有用信息.

这不起作用:

    socket.on( "data",
    /**
     * @param request {Object}
     * @param request.code {Number}
     * @param request.id {Number}
     * @param request.sr {String}
     */
    function( request )
    {});
Run Code Online (Sandbox Code Playgroud)

CKK*_*CKK 3

您可以使用复杂的“typedef”和“property”标签。记录于: http: //usejsdoc.org/tags-typedef.html 但是,“~”字符似乎阻止 WebIde 链接类型注释。(只需使用不带波形符的普通 typedef MyType 注释就可以了)

顺便说一句,对于 Google 关闭方式:

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

socket.on("data", handler);

/**
 * @param {SocketRequest} req
 */
function handler(req) {
    //req will be hinted here
}
Run Code Online (Sandbox Code Playgroud)

这个 jsdoc 注释是专门针对 Google Closure 的,但也可以在没有 Closure 的情况下使用,只是为了提示。(应该从 2012 年 8 月开始工作:http://blog.jetbrains.com/webide/2012/08/closure-syntax/