JSDoc链接到回调函数

时间:2015-01-23 12:44:23

标签: javascript node.js jsdoc

我决定使用JSDoc来记录我正在处理的项目。在阅读使用指南和问题时,我仍然觉得我没有理解JSDoc的一些核心概念,我在下面的例子中说明了我的无能:http://jsfiddle.net/zsbtykpv/

/**
 * @module testModule
 */

/**
 * @constructor
 */
var Test = function() {
    /**
     * @callback myCallback
     * @param {Object} data An object that contains important data.
     */

    /**
     * A method that does something async
     * @param  {myCallback} cb a callback function
     * @return {boolean} always returns true
     */
    this.method = function(cb) {
        doSomethingAsync(function(data) {
            cb(data);
        });
        return true;
    }

}

module.exports = Test;

在这里,我定义了一个模块,表示了一个构造函数,并记录了一个将回调作为其参数之一的方法。听起来很简单,似乎遵循使用指南http://usejsdoc.org/设置的指导原则。

但由于某种原因超出了我的理解(这可能是我没有得到的核心概念),它将回调myCallback显示为testModule的成员而不是Test类。它不应该默认是类的成员而不是模块吗?这似乎也阻止了JSDoc建立回调定义的链接,这并不是很有趣。

现在我意识到如果我要写:

/**
 * @callback module:testModule~Test~myCallback
 * @param {Object} data An object that contains important data.
 */

/**
 * A method that does something async
 * @param  {module:testModule~Test~myCallback} cb a callback function
 * @return {boolean} always returns true
 */

我会得到我想要的行为。但这似乎是一种非常笨重的做事方式,生成的链接远非漂亮。

对于长时间的累积感到抱歉,并提前感谢您在我的文档工作中提供的帮助:)

0 个答案:

没有答案