2015-04-06 9 views
6

Ich hatte ein Problem mit dem Verständnis der Zweck von Namespaces und Module in einer Union. Zum Beispiel habe ich eine Klasse Game.utils.Matrix. Ich möchte Game als Namespace mit Anmerkungen versehen, utils als Modul und Matrix als Klasse:JSDoc: Was ist eine Beziehung zwischen Modulen und Namespaces

/** 
* @namespace Game 
*/ 

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

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

Es hat eine Dokumentation erstellt und den Namen Pfad der Matrix Klasse ist Game.utils~ Matrix, aber wenn ich die Module Link seinen Namen folgen Pfad ist Module: utils ohne das Namespacepräfix Game, und wenn ich dem Game Link folge, enthält es die Modulverknüpfung utils nicht.

Außerdem kann ich nicht eine andere Klasse zu diesem Modul hinzufügen, um diese Klasse nicht in der utils Modul Tab angezeigt wird:

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

Die Frage ist: Was ist der richtige Weg ist, Namespaces und Module zu dokumentieren und Was ist der Anwendungsfall für jeden von ihnen?

Antwort

4

Ich spielte ein wenig damit und ich denke, Module in einem Namespaces ist ein bisschen schwierig. Was für mich funktionierte, ist ein Modul utils und ein Namensraum zu definieren, der darauf verweist. Das Modul heißt utils, jedoch nicht Game.utils, aber in Game können Sie eine Eigenschaft sehen, die darauf verweist.

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

/** 
* @module utils 
*/ 

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