3

我想知道如何使用 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 的构造函数。

谢谢你的帮助

4

2 回答 2

4

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

/**
 * @param {Number|Object} arg Description of arg
 * @param {Number} [arg2] Description of arg2
 */
于 2012-06-20T18:24:06.580 回答
3

JavascriptMVC项目使用/创建的文档工具DocumentJS发布了一个新的“@signature”注释,允许您为同一方法注释多个签名。

我找不到太多文档,但根据来源(为简洁而编辑),它看起来很简单:

   /**
     * @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 ) {
于 2013-08-15T03:04:37.160 回答