javascript - generate - jsdoc guide
¿Cómo puedo documentar un tipo en webstorm usando solo jsdoc? (3)
Estoy usando este estilo de comentario para los tipos tipo ''struct'':
/**
* @name BrowserSelector
* @property {String} name
* @property {Number} minVer
* @property {Number} maxVer
*/
/** @type {BrowserSelector|*} */
var mySelector = {}; // no warning because of ''*'' in @type :S
mySelector.name = ''foo''; // no warning :)
mySelector.id = ''bar''; // warning :)
Cuando escribo el siguiente código, el anotador me dice que BrowserSelector
no está definido en la segunda typedef:
/**
* @typedef {{name: String, minVer: Number, maxVer: Number}} BrowserSelector
*/
/**
* @typedef {{type:String, browser: BrowserSelector, attribute: Object}} Selector
*/
Creo que no está asociando el tipo con el nombre. ¿Cómo puedo hacer eso?
Preferiría no agregar código real para ello, solo jsdoc comentarios.
Los comentarios múltiples para describir propiedades no son necesarios a partir de Webstorm 7 (quizás antes).
/**
* @name BrowserSelector
* @type {{
* name: String,
* minVer: Number,
* maxVer: Number
* }}
*/
Recientemente noté en el código fuente de AngularJS que también anotaban cosas sin ningún código directamente adjunto. Intenté el mismo principio en su caso y se me ocurrió lo siguiente (incluso el código completo y la comprobación de tipos funcionan con él en WebStorm):
/**
* @name BrowserSelector
*/
/**
* @name BrowserSelector#name
* @type {string}
*/
/**
* @name BrowserSelector#minVer
* @type {number}
*/
/**
* @name BrowserSelector#maxVer
* @type {number}
*/
/**
* @name Selector
*/
/**
* @name Selector#type
* @type {string}
*/
/**
* @name Selector#browser
* @type {BrowserSelector}
*/
/**
* @name Selector#attribute
* @type {Object}
*/