【问题标题】:Documenting prototype property and method with JSDoc-3.3.0-alpha5使用 JSDoc-3.3.0-alpha5 记录原型属性和方法
【发布时间】:2014-07-01 19:42:16
【问题描述】:

我有一个名为 FileDownloader 的类,我已经尝试记录它,但是在输出文件中没有生成使用 prototype 声明的属性和方法。

如标题所述,我使用的是 jsdoc 3.3.0-alpha5。

代码如下:

/**
 * @class
 * @memberOf module:utils
 */
FileDownloader = function() {};    
/**
 * @type {Boolean}
 */
FileDownloader.prototype.overwrite = false;
/**
 * @type {String}
 */
FileDownloader.prototype.dir = config.dealImagePath;    
/**
 * @param {String} url
 * @param {Function} done
 * @param {Object} done.err
 * @param {String} done.file
 */
FileDownloader.prototype.download = function(url, done) {
    //...
};

这是生成的文档:

new FileDownloader()
    | Source: path/to/file.js

有什么想法吗?

【问题讨论】:

    标签: javascript node.js jsdoc jsdoc3


    【解决方案1】:

    原因是 FileDownloader 描述中的memberOf。 您应该在之前设置模块,文件中的所有符号都被假定为模块的成员。 http://usejsdoc.org/tags-module.html

    这样

    /** @module utils */
    
    /**
     * @class
     */
    var FileDownloader = function() {};
    
    /**
     * @type {Boolean}
     */
    FileDownloader.prototype.overwrite = false;
    ...
    

    【讨论】:

    • 好吧,@module utils 是在另一个文件中定义的。不过,当我删除 @memberOf 标记时它工作得很好。
    • 您想将FileDownloader 设置为utils 模块的一部分吗?在多个文件中添加@module utils 似乎没问题。
    • 我尝试将@module utils 放在几个文件中,但它会产生该模块的重复类。比如我把@module utils放到Class1.js和Class2.js,那么在utils模块中会输出2个Class1.js和2个Class2.js。
    猜你喜欢
    • 1970-01-01
    • 2015-02-05
    • 2015-04-15
    • 1970-01-01
    • 2018-12-30
    • 2021-12-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多