Editar: Esto es técnicamente una pregunta de 2 partes. Elegí la mejor respuesta que cubre la pregunta en general y está vinculada a la respuesta que maneja la pregunta específica.La mejor manera de documentar objetos anónimos y funciones con jsdoc
¿Cuál es la mejor manera de documentar objetos y funciones anónimas con jsdoc?
/**
* @class {Page} Page Class specification
*/
var Page = function() {
/**
* Get a page from the server
* @param {PageRequest} pageRequest Info on the page you want to request
* @param {function} callback Function executed when page is retrieved
*/
this.getPage = function(pageRequest, callback) {
};
};
Ni el objeto PageRequest
o la callback
existen en código. Se proporcionarán a getPage()
en tiempo de ejecución. Pero me gustaría poder definir qué objeto y función son.
puedo salirse con la creación del objeto PageRequest
para documentar que:
/**
* @namespace {PageRequest} Object specification
* @property {String} pageId ID of the page you want.
* @property {String} pageName Name of the page you want.
*/
var PageRequest = {
pageId : null,
pageName : null
};
Y eso está bien (aunque estoy abierto a mejores maneras de hacer esto).
¿Cuál es la mejor manera de documentar la función callback
? Quiero que sea conocido en el documento que, por ejemplo, la función de devolución de llamada está en la forma de:
callback: function({PageResponse} pageResponse, {PageRequestStatus} pageRequestStatus)
¿Alguna idea de cómo hacer esto?
¡Realmente limpio! Una excelente forma de documentar devoluciones de llamadas. – oligofren
¿Pero no veo cómo funciona esto para objetos anónimos? Digamos un objeto de configuración que se envía a alguna función para crear un objeto que no está visible en el alcance actual. – oligofren
Si no desea utilizar la etiqueta '@ name' para dar un nombre a su objeto anónimo, describa el objeto donde se usa, que sería el cuerpo de la etiqueta' @ param' para su ejemplo de objeto de configuración. – Eric