JSDoc:注释导出的方法

JSDoc: Annotating an exported method

如果我这样定义一个对象:

/**
 * My Cool Object
 * @constructor
 */

 function MyCoolObject() {

       /**
        * Cool Method, private
        * @param {!string} parameter
        */

       function localMethod(parameter) {
           // do stuff
       }

       // Export the method
       this.exportedMethod = localMethod;

 }

我想知道,如果可能的话,如何告诉 JSDOCexportedMethod 中使用 localMethod 的注释,或者如何我可以注释 exportedMethod,因为如果我这样做:

       // Export the method

       /**
        * Cool Method 
        * @param {!string} parameter
        */
       this.exportedMethod = localMethod;

JSDOC 假设它是一个字段而不是方法,然后只使用描述,忽略 @param 部分。

我会减少到:

/**
 * My Cool Object
 * @constructor
 */

function MyCoolObject()  {
    /**
     * Cool Method, private
     * @param {!string} parameter
     */
    this.exportedMethod = function (parameter) {
        // do stuff
    };

}

如果您想要对该方法的本地引用,您可以在之后立即执行 var localMethod = this.exportedMethod。如果您过度简化了您的示例并且您 需要 在分配给 this.exportedMethod 之前先分配给 localMethod,您可以这样做:

/**
 * My Cool Object
 * @constructor
 */

function MyCoolObject()  {

    function localMethod(parameter) {
        // do stuff
    }

    /**
     * Cool Method, private
     * @param {!string} parameter
     * @function
     */
    // Export the method
    this.exportedMethod = localMethod;

}

@function 声明告诉 jsdoc 它正在处理一个函数。