使用JSDoc记录私有构造函数

Jus*_*eig 10 javascript constructor private jsdoc

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

var builder = ns
  .setState('a', 'A')
  .setState('b', 'B');
Run Code Online (Sandbox Code Playgroud)

在哪里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…
}
Run Code Online (Sandbox Code Playgroud)

Builder构造函数永远应该是由用户代码显式调用,因此我想它不是在文档中显示.然而,所有我曾与JSDoc标签试图组合(例如@private,@constructs等)似乎无法从内置文档压制它.

vit*_*y-t 2

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

/**
 * @class Builder
 *
 * @hideconstructor
 */
function Builder() {
    // implementation
}
Run Code Online (Sandbox Code Playgroud)