【问题标题】:JSDoc: node, events, listenersJSDoc:节点、事件、监听器
【发布时间】:2015-01-23 15:57:02
【问题描述】:

我正在尝试记录一个用 JS/NodeJS 编写的非常广泛的(对我而言)代码库。 JSDoc 似乎是唯一可用的有效工具,但也存在挑战。以下是我想知道如何记录的两个:

1) 我“需要”一个模块 (Buzz),然后设置一个监听器:

    var Buzz = require("Buzz");
    var ...
    .
    .
    .

    ["in_call", "idle", "offline", "busy"].forEach(function (e) {
        Buzz.on("state:" + e, sounds.stop);
    });

    Buzz.on("message", function (message) {
        if (message && !message.read)
            sounds.play("message");
    });

2) 使用 'Vue.js' 时,现在需要使用函数来设置属性,这意味着函数内有函数作为属性。下面是我让 jsdoc 记录函数的一种笨拙方式,但显然它没有任何意义,因为真的没有 ae-admin 'class'。

    /**
     * @class  ae-admin
     */

    module.exports = Vue.component("ae-admin", {
        className: "ae-admin",
        template: template,
        /**
         * [data description]
         * @memberOf ae-admin
         * @return {[type]} [description]
         */
        data: function () {
            return {
            .
            .
            .
            };
        },
        /**
         * ready description]
         * @memberOf ae-admin
         * @return {[type]} [description]
         */
        ready: function () {},
        methods: {
            /**
             * [set_page description]
             * @memberOf ae-admin
             * @param {[type]} page [description]
             */
            set_page: function (page) {
                this.$data.page = page;
            },
            .
            .
            .

有趣的是,JSdoc 看起来真的很像 javadoc,而 js 范式是事后才想到的。无论如何,任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js documentation jsdoc jsdoc3


    【解决方案1】:

    对于模块,有@exports 和@module 标签。

    这些在记录您的代码方面比 @class 更有效。

    您可以看到一些非常棒的示例 from usejsoc, here 以及它们的 module 和 exports 定义。

    我使用 AMD 模块语法,所以我不能为你评论确切的格式,但我相信你应该在那里找到一些例子。

    如果您仍然选择使用类,请尝试在您注册的组件而不是类之前使用 /** @lends className **/,即

    module.exports = Vue.component("ae-admin", /** @lends ae-admin **/{
    

    甚至@lends ae-admin.prototype。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      • 2021-06-04
      相关资源
      最近更新 更多