【问题标题】:JSDoc: Annotating an exported methodJSDoc:注释导出的方法
【发布时间】:2015-04-09 06:53:35
【问题描述】:

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

/**
 * 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 部分。

【问题讨论】:

    标签: javascript annotations documentation-generation jsdoc


    【解决方案1】:

    我会把它简化为:

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

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

    /**
     * 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 它正在处理一个函数。

    【讨论】:

    • 第二件事就是我要找的!我不想像在您的第一个解决方案中那样减少它,因为这些本地方法也在对象闭包中本地调用,我更喜欢将它们保持私有,以便它们被混淆,等等。
    猜你喜欢
    • 2015-06-02
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2011-09-20
    • 1970-01-01
    相关资源
    最近更新 更多