2015-04-06 6 views
6

У меня возникла проблема с пониманием цели пространств имен и модулей в объединении. Например, у меня есть класс Game.utils.Matrix. Я хочу, чтобы комментировать Game как пространство имен, utils как модуль и Matrix как класс:JSDoc: Что такое связь между модулями и пространствами имен

/** 
* @namespace Game 
*/ 

/** 
* @module utils 
* @memberOf Game 
*/ 

/** 
* Create a matrix 
* @constructor 
*/ 
function Matrix(){} 

Он создает документацию и имя путь Matrix класса Game.utils~ Matrix, но если я следовать Module связать свое имя путь равен Module: utils без префикса пространства имен Game, и если я следую ссылке Game, он не содержит ссылку модуля utils.

Кроме того, я не могу добавить еще один класс к данному модулю Этот класс не отображается на вкладке utils модуля:

/** 
* Create Dictionary 
* @memberOf Game.utils 
* @constructor 
*/ 
function Dictionary(){} 

вопрос: что такое правильный способ документирования и пространств имен модулей и Каков прецедент для каждого из них?

ответ

4

Я играл с ним немного, и я предполагаю, что модули в пространствах имен немного сложнее. Что для меня работало, так это определить модуль utils и пространство имен, которое ссылается на него. Модуль называется utils, но не Game.utils, но в Game вы можете увидеть свойство, которое ссылается на него.

/** 
* @namespace Game 
* @property {module:utils} utils 
*/ 

/** 
* @module utils 
*/ 

/** 
* Create a matrix 
* @class 
*/ 
function Matrix(){}