@mlounge

Как правильно задокументировать код JSDoc?

Привет!

Мне необходимо задокументировать несколько модулей и объединить их в единую документацию при помощи JSDoc, но как это сделать не очень пойму.

Вот пример модуля:

// Module myModule1
(function() {

var instances = [];
function getInstance() { ... }
function createInstance() { 
   // Class MyModuleClass
   return {
       objParam1: ...,
       objMethod1: function() { ... }
   }
}

window.myModules.myModule1 = {
   instances: instances,
   createInstance: createInstance,
   getInstance: getInstance
}

})();


Вот проблемы:
1) JSDoc не хочет документировать то, что внутри (function() {})()
2) Надо объяснить JSDoc'у, что window.myModule1 - это модуль, а анонимный класс внутри create - собственно сам класс. Надо чтобы он бил документацию по разделам-модулям, а уже там показывал список классов.

Не мог ли кто-нибудь предложить пример аннотаций JSDoc для данного кода?
  • Вопрос задан
  • 633 просмотра
Пригласить эксперта
Ответы на вопрос 1
youngmysteriouslight
@youngmysteriouslight
ТК, ТТ, JS, FP, WM
JSDoc 3.5.5
/** @module ZModule */
(function() {

/**
 * an array of instances.
 * @memberof module:ZModule
 */
var instances = [];

/**
 * retrieve an instance.
 * @memberof module:ZModule
 * @return an instance
 */
function getInstance() { return instance[0]; }

/**
 * Constructor of a new instance.
 * @memberof module:ZModule
 * @class module:ZModule.createInstance
 */
function createInstance() {
   return /** @lends module:ZModule.createInstance# */ {
       /**
        * param.
        */
       objParam1: 42,
       /**
        * method.
        * @return an integer
        */
       objMethod1: function() { return 24; }
   }
}

window.myModules.myModule1 = {
   instances: instances,
   createInstance: createInstance,
   getInstance: getInstance
}

})();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект