Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to extend a typedef parameter in JSDOC?

Assuming you have the following code inside a ES6 class (documentation):

/**  * @typedef Test~options  * @type {object.<string>}  * @property {array} elements - An array containing elements  * @property {number} length - The array length  */  /**  * @param  {Test~options} opt - Option object  */ test(opt){  } 

Now I would like to document another function, let's name it test2. This function takes exactly the same options object, but needs another property parent.

How to document this without documenting redundant options? Redundant means:

/**  * @typedef Test~options  * @type {object.<string>}  * @property {array} elements - An array containing elements  * @property {number} length - The array length  */  /**  * @param  {Test~options} opt - Option object  */ test(opt){  }   /**  * @typedef Test~options2  * @type {object.<string>}  * @property {array} elements - An array containing elements  * @property {number} length - The array length  * @property {object} parent - The parent element  */  /**  * @param  {Test~options2} opt - Option object  */  test2(opt){   } 
like image 263
dude Avatar asked Apr 20 '16 08:04

dude


1 Answers

I found this solution and this works very fine for me. originally from here

 /**  * @typedef {Object} ChildType  * @property {String} childProp  *  * @typedef {Base & ChildType} Child  */ 
like image 180
Ajit Kumar Avatar answered Sep 28 '22 04:09

Ajit Kumar