2012-05-16 3 views
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() { 

    } 
}); 

Это производит один конструктор {строки} p1.

Спасибо за вашу помощь

ответ

4

JSDoc не имеют понятия, сравнимое с Visual Studio XML Doc нескольких подписей. Один из вариантов - это документировать параметры как имеющие несколько возможных типов, и маркировать некоторые необязательные.

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

DocumentJS, инструмент документации, используемый/создатель проект JavascriptMVC имеет 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) {