2012-05-21 14 views
33

Sto usando la "classe" di jQuery $.widget() che fornisce un metodo option(). Poiché il metodo non è nel mio codice, non ho un posto dove documentare l'argomento.JSDoc: Come documentare il valore letterale dell'oggetto "options" per una "classe" genitore?

Ho provato a inserire jsDoc sui campi nelle opzioni predefinite letterali, ma semplicemente non vengono prelevati. Poi ho provato a usare i tag @class e @lends sullo stesso oggetto letterale, ma questo potrebbe essere abbastanza confuso in quanto l'oggetto letterale non è realmente una classe.

Un'altra alternativa che ho sperimentato è di inserire qualcosa come @param options.field description nel jsDoc del costruttore. Tuttavia, questo ha lo svantaggio di separare la documentazione dal codice. Inoltre, il costruttore non ha in realtà un argomento chiamato options poiché è gestito da jQuery.

Come gestiscono i guru Javascript? Dovrebbe essere proposto un nuovo tag?

+2

La tua domanda suona molto simile a questo: http://stackoverflow.com/questions/6460604/how-to-describe -object-arguments-in-jsdoc –

+0

@LeviHackwith Sì, è simile, ma come ho descritto nella domanda, non ho un posto dove posso usare il tag @param perché i ragazzi di jQuery hanno implementato tutto il codice della piastra della caldaia (compresa la funzione 'options()' dove normalmente verrebbe usato il tag @param.) –

+1

['/ ** @param {Object. } options */'] (http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.7.js) sembra essere un modo per farlo. –

risposta

67

Se ho compreso correttamente la tua domanda, hai una funzione che accetta un oggetto opzioni e vuoi documentare tutti i suoi membri?

Un esempio di massima di come farlo in JSDoc è come qui sotto:

/** 
* @description 
* Compliment someone on their something. 
* 
* @param {Object} options 
* @param {String} options.name A person's name 
* @param {String} options.feature A person's property 
*/ 
function flatter (options) { 
    options = options || {}; 
    console.log('%s, loving your %s!', options.name, options.feature); 
} 
+0

È possibile documentare una proprietà che ha uno spazio in essa, ad es. 'options ['some property']'? –

+0

Non qualcosa che ho provato, prova un paio di varianti di quoting del valore ed esegui il generatore jsdoc per vedere. Per favore fateci sapere dopo. –

+0

Beh, visto che questa domanda continua a essere urtata, chiarirò qui: questa non è la risposta per il mio specifico quesiton perché, come ho detto, jQuery fornisce il metodo "option" quindi non ho un metodo in cui le opzioni letterali è l'argomento. –

Problemi correlati