[英]How to extend a typedef parameters in JSDOC?
我有一个 typedef 的 JSDoc 注释,如下所示,
/**
* @typedef {Object} obj1
* @property {boolean} a - Property 1
* @property {boolean} b - Property 2
*/
我想要一个新的 typedef,它还包括以下属性:
* @property {boolean} c - Property 3
* @property {boolean} d - Property 4
除了a和b之外,如何向 object 添加任何其他属性?
在代码中,它是这样的:
const obj1 = {
a: true,
b: false
}
const obj2 = {
a: true,
b: false,
c: true,
d: false
}
如您所见, a和b是共享的,所以我不想重复定义它们,它们完全相同。
如何向现有定义添加属性?
在代码中,我们可以这样做:
const obj2 = {
...obj1,
c: true,
d: false
}
我们可以做类似下面的 jsDoc 的事情吗?
/**
* @typedef {Object} obj1
* @property {boolean} a - Property 1
* @property {boolean} b - Property 2
*/
/**
* @typedef {Object} obj2
* @property {...obj1}
* @property {boolean} c - Property 3
* @property {boolean} d - Property 4
*/
??
解决方法很简单:
它是通过使用这种语法:
/**
* @typedef {Obj1Props & Obj2Props} obj2
*/
/**
* @typedef {Object} Obj1Props
* @property {boolean} a - Property 1
* @property {boolean} b - Property 2
*/
/**
* @typedef {Object} Obj2Props
* @property {boolean} c - Property 3
* @property {boolean} d - Property 4
*/
/**
* @typedef {Obj1Props & Obj2Props} obj2
*/
/** @type {Obj1Props} */
const obj1 = {
a: true,
b: false
}
/** @type {obj2} */
const obj2 = {
a: true,
b: false,
c: true,
d: false
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.