【发布时间】:2019-11-27 05:22:26
【问题描述】:
我有一个函数factory:
function factory(events) {
for(const key in events) {
const { before, after } = events[key]
}
}
参数events 通常在哪里:
{
only: {
before(){}
after(){}
},
except: {
before(){}
after(){}
},
}
其中only、except 键可以是任何值,但值始终(必须是){before, after} 类型,其中before、after 都是函数。
如何使用 JSDoc 在我的 factory 函数中为 events 参数记录这个结构?
我能想到的唯一解决方案是将events 设为一个数组,然后我可以像这样使用typedef:
/**
* @typedef event
* @property {function} before
* @property {function} after
*/
/**
* @typedef eventTuple
* @property {string} key
* @property {event} event
*/
/**
* @param {[eventTuple]} events
*/
function factory(events) {
for(const { key, event } of events) {
const { before, after } = event
}
}
但我真的很想保留原来的结构。
是否可以在我的原始结构中记录此 event 类型定义?
我主要关心它在 VSCode 中的工作,它从 JSDoc 中提升了这些类型定义。
【问题讨论】:
标签: javascript documentation jsdoc