假设你在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){
}
3条答案
按热度按时间fhity93d1#
我找到了这个解决方案,这对我来说非常好。最初来自这里
更新:您还可以使用
@extends
扩展jsdoc typedef。第二种解决方案更好,因为普通jsdocs不支持
Base & ChildType
。e5njpo682#
试试看
o4hqfura3#
我不喜欢没有“完整设置”的半生不熟的答案,所以这里有一个:
它也可以跨多个文件工作,但你必须使用
import('./person').Person
样式:*person.mjs:
*wizard.mjs: