我有一个功能 factory
:
function factory(events) {
for(const key in events) {
const { before, after } = events[key]
}
}
凡论
events
通常是:{
only: {
before(){}
after(){}
},
except: {
before(){}
after(){}
},
}
key 在哪里
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 中提升了这些类型定义。
最佳答案
您可以使用 TS 语法。
附言老实说,我不确定这是否适用于任何地方。但它至少适用于智能感知
/**
* @typedef event
* @property {function} before
* @property {function} after
*/
/**
* @param {{[key: string]: event}} events
*/
function factory(events) {
for (const key in events) {
const { before, after } = events[key]
}
}
关于javascript - JSDoc 中对象中任意键值的文档结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48081797/