ES6クラス(ドキュメント)内に次のコードがあるとします。
/**
* @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){
}
今、私は別の関数を文書化したいと思います、それをtest2
。この関数はまったく同じoptions
オブジェクトを取りますが、別のプロパティparent
が必要です。
冗長なオプションを文書化せずにこれを文書化する方法は?冗長な意味:
/**
* @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){
}
それを試してみてください
/**
* @typedef {object.<string>} Test~options
* @property {array} elements - An array containing elements
* @property {number} length - The array length
*/
/**
* @param {Test~options} opt - Option object
*/
test(opt){
}
/**
* @typedef {Test~options} Test~options2
* @property {object} parent - The parent element
*/
/**
* @param {Test~options2} opt - Option object
*/
test2(opt){
}
私はこの解決策を見つけましたが、これは私にとって非常にうまく機能します。元々 ここ から
/**
* @typedef {Object} ChildType
* @property {String} childProp
*
* @typedef {Base & ChildType} Child
*/