我有一个函数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
是函数。
我如何记录这个结构events
我的论点factory
使用 JSDoc 的函数?
我能想到的唯一解决方案是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 中提升了这些类型定义。