JSDoc3 - 如何记录类的子成员

时间:2014-02-26 23:20:57

标签: javascript documentation jsdoc jsdoc3

我正在尝试记录类似于以下内容的内容,其中baz1bazzedbar中包含的属性,barFoo的成员}

/**
 * @class
 */
function Foo(){
  this.bar = {
     /**
      * The baz function
      */
     baz1: function(){},
     /**
      * The baz1 function
      */
     bazzed: 'bazzed'
  }
}

var foo = new Foo();

//call baz and baz1
foo.bar.baz();
foo.bar.baz1;

现在JSDoc文档Foobar,但它错过了baz1bazzed

我意识到我可以做这样的事情

/**
 * @class
 */
function Foo(){
  /**
   * @property {function} baz - Does baz
   * @proprety {string} baz1 - Stores baz1
   */
  this.bar = {
     /**
      * The baz function
      */
     baz1: function(){},
     /**
      * The baz1 function
      */
     bazzed: 'bazzed'
  }
}

但我不想出于三个原因:

  1. 有些课程有baz2:function(){}baz10:function(){}
  2. 有些baz有大量的评论区块,并且在bar的评论区块中包含它似乎没有意义。
  3. 在某些地方,代码有foo.bar.baz.buzz(),只能说明原因1和2。
  4. 我知道这是一个非常长的问题,但过去4个小时我一直在搜索空白。

1 个答案:

答案 0 :(得分:0)

将栏目列为Foo的子类怎么样?

/**
 * @class
 */
function Foo(){
    /**
     * @class
     * @type {{baz1: baz1, bazzed: string}}
     */
    this.bar = {
        /**
         * The baz function
         */
        baz1: function(){},
        /**
         * The baz1 function
         */
        bazzed: 'bazzed'
    }
}