JSDoc:节点,事件,监听器

时间:2014-11-25 15:10:36

标签: javascript node.js documentation jsdoc jsdoc3

我正在尝试记录用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'时,它现在需要使用函数来设置属性,这意味着函数中有作为属性的函数。下面是一个kludgy方式,我使jsdoc文档的功能,但显然没有意义,因为真的没有ae-admin'类'。

    /**
     * @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范式是事后的想法。无论如何,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用模块,有@exports和@module标签。

这些对于记录代码比@class更好。

您可以看到一些非常好的示例from usejsoc, here以及moduleexports定义。

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

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

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

甚至@lends ae-admin.prototype。