2015-12-21 8 views
3

Je modifie un fichier js avec JsDoc pour obtenir une documentation propre. Ma structure est assez simple:JsDoc, espace de noms

/** 
* Finds an object 
* @param {string} prop - Property 
*/ 

Array.prototype.findObject = function _findObj(prop, val){ 
    // blablabla 
} 


function myfunc(plep){ 
    // does something 
} 

/** 
* Workshop Namespace 
* @namespace 
*/ 

var Workshop = {}; 


/** 
* Does something great 
* @param {*} plep - My super param! 
*/ 
Workshop.doIt = myfunc; 

/** 
* It works! 
* @param {string} fly - my flying param 
*/ 
Workshop.flyNow = function _flyN (fly){ 
    // fly! 
} 

Cependant,

  1. Documentation pour la première ne sera pas affichée.
  2. espace de noms de l'atelier est créé
  3. Workshop.doIt est documenté que par sa description, les arguments ne sont pas
  4. Workshop.flyNow est bien documenté

Est-ce que quelqu'un sait pourquoi?

Merci!

Répondre

1

Est-ce que Array existe en tant que symbole? Si non, c'est la raison pour laquelle cela n'est pas documenté.

En ce qui concerne le paramètre, êtes-vous sûr que * est un type valide? Pouvez-vous essayer Object?

1
/** 
* Finds an object 
* @param {string} prop - Property 
*/ 

Array.prototype.findObject = function _findObj(prop, val){ 
    // blablabla 
} 

/** 
* Does something great 
* @param {*} plep - My super param! 
*/ 
function myfunc(plep){ 
    // does something 
} 

/** 
* Does something great 
* @param {*} plep - My super param! 
* @function 
*/ 
var alternativeDoIt = function myfunc2(plep){ 
// does the same thing 
} 

/** 
* Workshop Namespace 
* @namespace 
*/ 

var Workshop = {}; 


/** 
* Does something great 2 
* @function (<== check if this is useful) 
*/ 
Workshop.doIt = myfunc; 

Workshop.doIt2 = alternativeDoIt; 

/** 
* It works! 
* @param {string} fly - my flying param 
*/ 
Workshop.flyNow = function _flyN (fly){ 
    // fly! 
} 
1

Voici pourquoi:

1.

fonction première est pas documentée, car il ne fait pas partie de tout espace de noms reconnaissable. Pour résoudre ce problème, vous pouvez créer un espace de noms virtuel comme suit:

/** * @namespace Array */

Et vous pouvez améliorer la documentation de la fonction comme suit:

/** 
* Finds an object. 
* 
* @param {string} prop Property name. 
* @param {string|number|function|object} val Value. 
* 
* @function findObject 
* @memberof Array# 
*/ 
Array.prototype.findObject = function _findObj (prop, val) { 
    // blablabla 
} 

Avec les résultats ci-dessous enter image description here

3.

Les arguments n'ont pas été documentés car l'analyseur JSDoc ne reconnaît pas Workshop.doIt(...) en tant que fonction. Cela peut être fixé avec l'étiquette @function ou @method:

/** * Does something great * @param {*} plep - My super param! * * @method */ Workshop.doIt = myfunc;

Et le résultat ressemble à ceci: enter image description here