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){
 }
 
     
     
     
    