使用jsdoc-toolkit在命名空间中记录带有原型的javascript类

时间:2011-04-11 09:14:02

标签: javascript documentation documentation-generation jsdoc

我正在努力使用jsdoc-toolkit以下面的格式记录代码。在我看来,我使用的标签应该产生所需的结果,但事实并非如此。相反,它警告Class是未记录的(因为它只在闭包内定义)并且不包括命名空间成员列表中的Class。

如果可能的话,我想记录下来,而不是使用@name标签。有人可以帮忙吗?

/**
 * @namespace The original namespace
 */
var namespace = function () {
    // private
    /**
     * @private
     */
    function _privateMethod () {

    };

    /**
     * This is the detail about the constructor
     * @class This is the detail about the class
     * @param {Object} argone The first argument
     * @param {Object} argtwo The second argument
     */
    var Class = function (argone, argtwo) {
        /**
         * A public member variable
         */
        this.member = "a member";
    };

    /**
     * A public method
     * @param {Object} argone The first argument
     */
    Class.prototype.publicMethod = function (argone) {

    };

    return /** @lends namespace */ {
        Class: Class
    }
}();

2 个答案:

答案 0 :(得分:4)

我尝试了很多不同的东西,这是我能想到的最好的东西。

第一部分......记录publicMethod上的Class。首先让Class成为memberOf namespace,然后在@lends上使用Class.prototype。例如:

/**
 * @namespace The original namespace
 */
var namespace = function () {
    // private
    /**
     * @private
     */
    function _privateMethod () {

    };

    /**
     * This is the detail about the constructor
     * @class This is the detail about the class
     * @memberOf namespace
     * @param {Object} argone The first argument
     * @param {Object} argtwo The second argument
     */
    var Class = function (argone, argtwo) {
        /**
         * A public member variable
         */
        this.member = "a member";
    };

    Class.prototype = 
    /** @lends namespace.Class */ 
    {
        /** a public method
          * @param {Object} argone The first argument
        */
        publicMethod: function (argone) {

        }
    };

    return {
        Class: Class
    }
}();

现在,第二部分......让Class显示在namespace上。我不知道怎么做...对不起!它将在类索引中显示为namespace.Class

答案 1 :(得分:0)

就像一个提示:jsdoc 2充满了错误和不良做法 考虑尝试JSDOC3 - > https://github.com/jsdoc3/jsdoc或根本没有jsdoc,具体取决于项目的性质。