首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回调函数的JSDoc链接

回调函数的JSDoc链接
EN

Stack Overflow用户
提问于 2015-01-23 20:44:23
回答 1查看 1.1K关注 0票数 2

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

代码语言:javascript
运行
复制
/**
 * @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/设置的指导原则。

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

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

代码语言:javascript
运行
复制
/**
 * @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
 */

我会得到我想要的行为。但这似乎是一种非常笨拙的方式,生成的链接远不美观。

很抱歉造成了很长时间的积累,并提前感谢您在我的文档工作中的帮助:)

EN

回答 1

Stack Overflow用户

发布于 2017-08-12 05:26:23

我也遇到过类似的问题。如果你想要更好看的链接,你可以随时在描述中添加一个{@link},并在@type中使用规范的名称,如下所示:

代码语言:javascript
运行
复制
/**
 * @callback module:testModule~Test~myCallback
 * @param {Object} data An object that contains important data.
 */

/**
 * @param {myCallback} cb {@link module:testModule~Test~myCallback|myCallback}: a callback function
 * @return {boolean} always returns true
 */

我知道这有点令人沮丧,但它将myCallback记录为类的成员,而不是模块,并且链接看起来很好。

如果你真的想要@type中的链接,并且你不关心它是如何记录回调的,你也可以这样做,这样做不会那么冗长(这也是我决定为我的项目做的):

代码语言:javascript
运行
复制
/**
 * @callback myCallback
 * @param {Object} data An object that contains important data.
 */

/**
 * @param {module:testModule~myCallback} cb a callback function
 * @return {boolean} always returns true
 */

这将正确地链接到myCallback,并将其记录为模块的成员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28110249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档