具有多个签名的文档构造函数

时间:2012-05-16 09:17:45

标签: javascript jsdoc

我想知道如何使用jsdoc为构造函数定义两个签名:

makeClass("Person",
/** @lends Person */
{
    /**
        @constructs
        @param {int} p1
    */
    /**
        @constructs
        @param {string} p1
    */
    constructor: function () {

    },

    /**
        @name Person.prototype.func
        @function
        @param {object} arg arg desc
    */
    /**
        @name Person.prototype.func^2
        @function
        @param {int} arg arg desc
        @param {int} arg2 arg2 desc
    */
    func: function () {

    }
});

这会生成一个带有{string} p1的构造函数。

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

JSDoc没有与Visual Studio XML Doc多重签名相当的概念。一种选择是将参数记录为具有多种可能的类型,并标记一些可选的。

/**
 * @param {Number|Object} arg Description of arg
 * @param {Number} [arg2] Description of arg2
 */

答案 1 :(得分:3)

DocumentJSJavascriptMVC项目使用/创建的文档工具released a new "@signature" annotation,允许您为同一方法注释多个签名。

我找不到documentation,但根据source(为简洁而编辑),它看起来很直接:

   /**
     * @signature `observe.attr()`
     * @return {Object<String, *>} an object with all the properties in this `can.Observe`.
     * 
     * @signature `observe.attr(key)`
     * @param {String} key the property to read
     * @return {*} the value assigned to _key_.
     *
     * @signature `observe.attr(key, value)`
     * @param {String} key the property to set
     * @param {*} the value to assign to _key_.
     * @return {can.Observe} this Observe, for chaining
     */
   attr: function( attr, val ) {