Nor*_*mal 2 javascript jsdoc typescript visual-studio-code
我有一个 typedef 的 JSDoc 注释,如下所示,
/**
* @typedef {Object} obj1
* @property {boolean} a - Property 1
* @property {boolean} b - Property 2
*/
Run Code Online (Sandbox Code Playgroud)
我想要一个新的 typedef,其中还包含以下属性:
* @property {boolean} c - Property 3
* @property {boolean} d - Property 4
Run Code Online (Sandbox Code Playgroud)
除了a和b之外,如何向对象添加任何其他属性?
在代码中,它是这样的:
/**
* @typedef {Object} obj1
* @property {boolean} a - Property 1
* @property {boolean} b - Property 2
*/
Run Code Online (Sandbox Code Playgroud)
正如你所看到的, a和b是共享的,所以我不想重复定义它们,它们是完全相同的。
如何向现有定义添加属性?
在代码中,我们可以这样做:
* @property {boolean} c - Property 3
* @property {boolean} d - Property 4
Run Code Online (Sandbox Code Playgroud)
我们可以做像下面的 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
*/
Run Code Online (Sandbox Code Playgroud)
??
解决方案很简单:
这是通过使用以下语法:
/**
* @typedef {Obj1Props & Obj2Props} obj2
*/
Run Code Online (Sandbox Code Playgroud)
/**
* @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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |