JSDoc和工厂

时间:2015-08-05 14:46:03

标签: javascript factory jsdoc

我有这样的事情:

var make_point = function (x, y) {
  return {
    x: x,
    y: y,
    length: function () {
      return Math.sqrt(this.x * this.x + this.y * this.y);
    }
  }
}

使用jsdoc为此创建文档的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用typedef然后将其用作函数的返回类型:

/**
 * @typedef Point
 * @property {Number} x
 * @property {Number} y
 * @property {Function} length
 * @property {Point~getProjection} getProjection
 */

/**
 * @callback Point~getProjection
 * @param {Object} axes
 * @returns {Object}
 */

/**
 * @param {Number}
 * @param {Number}
 * @returns {Point}
 */
var make_point = function (x, y) {
  // ...
}

或者您可以使用对象类型:

/**
 * @param {Number}
 * @param {Number}
 * @returns {{x: Number, y: Number, length: Function}}
 */
var make_point = function (x, y) {
  // ...
}