使用JSDoc记录私有构造函数

时间:2014-12-11 17:55:40

标签: javascript constructor private jsdoc

我有一个类可以静态调用各个方法但是会返回一个新的类实例以便链接,例如:

var builder = ns
  .setState('a', 'A')
  .setState('b', 'B');

Builder的定义如下:

/** 
 * @module Builder 
 */

/**
 * @class Builder 
 */

/**
 * @private
 */
function Builder() {
  this.state = {
    query: {}
  };
}
Builder.prototype = {
  /**
   * @param {string} k - The key
   * @param {object} v - The value
   * @return {Builder}
   */
  setState: function(k, v) {
    var that = (this instanceof Builder) ? this : new Builder();
    that[k] = v;
    return that;
  }
  // Other properties and methods…
}

Builder构造函数从不应该由用户代码显式调用,因此我希望它不会显示在文档中。但是,我尝试使用JSDoc标记的所有组合(例如@private@constructs等)似乎无法从构建的文档中抑制它。

2 个答案:

答案 0 :(得分:2)

您应该能够使用@ignore指令来实现此目的。来自文档:

  

@ignore标记表示代码中的符号永远不会出现在文档中。此标记优先于所有其他标记。

http://usejsdoc.org/tags-ignore.html

答案 1 :(得分:1)

从jsDoc版本3.5.0开始,您可以在类上使用标签@hideconstructor,告诉jsDoc不要在文档中包含构造函数。

/**
 * @class Builder
 *
 * @hideconstructor
 */
function Builder() {
    // implementation
}