Документирование свойства и метода прототипа с помощью JSDoc-3.3.0-alpha5

У меня есть класс с именем FileDownloader, и я пытался его задокументировать, но свойства и метод, объявленные с использованием prototype, не генерируются в выходном файле.

Как указано в заголовке, я использую jsdoc 3.3.0-alpha5.

Вот код:

/**
 * @class
 * @memberOf module:utils
 */
FileDownloader = function() {};    
/**
 * @type {Boolean}
 */
FileDownloader.prototype.overwrite = false;
/**
 * @type {String}
 */
FileDownloader.prototype.dir = config.dealImagePath;    
/**
 * @param {String} url
 * @param {Function} done
 * @param {Object} done.err
 * @param {String} done.file
 */
FileDownloader.prototype.download = function(url, done) {
    //...
};

Вот сгенерированный документ:

new FileDownloader()
    | Source: path/to/file.js

Есть идеи?


person Riko Nagatama    schedule 10.06.2014    source источник


Ответы (1)


Причина memberOf в описании FileDownloader. Вы должны установить модуль перед тем, как предполагается, что все символы в файле являются членами модуля. http://usejsdoc.org/tags-module.html

Как это

/** @module utils */

/**
 * @class
 */
var FileDownloader = function() {};

/**
 * @type {Boolean}
 */
FileDownloader.prototype.overwrite = false;
...
person Wiki    schedule 01.07.2014
comment
Ну, @module utils определено в другом файле. Однако он отлично работает, когда я удаляю тег @memberOf. - person Riko Nagatama; 01.07.2014
comment
Вы хотите сделать FileDownloader частью модуля utils? Можно добавить @module utils в несколько файлов. - person Wiki; 01.07.2014
comment
Я пытался поместить @module utils в несколько файлов, но тогда он будет создавать дублированные классы этого модуля. Например, если я поставлю @module utils в Class1.js и Class2.js, то он выведет 2 Class1.js и 2 Class2.js в модуле utils. - person Riko Nagatama; 02.07.2014