我正在尝试学习JSDoc,并且我有这种方法:
/**
* Cleanup step.
*
* @return {Void}
*/
beforeDestroy() {
window.removeEventListener('resize', this.onResize);
},
这似乎是正确的,但是对于我通常的JavaScript编码样式,我会这样:
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
因为我总是尝试返回一个函数调用(作为与尾调用优化相关的函数编程习惯)。这引出了我的问题:如何记录返回函数调用的函数?
我天真的估计是这样的:
/**
* Cleanup step.
*
* @return {(String, Function) => Void}
*/
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
我想听听这种事情的正确/正常之处。我想知道如何在函数“返回返回void的函数调用”或“返回返回字符串的函数调用”这样的文档中进行记录。
我曾经见过人们问过咖喱函数,而这种情况在记录方面对我来说立即变得一发不可收拾,就像一个人需要多少个函数?
这种事情对我来说似乎不合理:
* @return {(String, Function) => (Object) => Void}
像“文档”需要多少对未来执行的了解?
答案 0 :(得分:1)
您使用@callback
(或@function
);参见:https://jsdoc.app/tags-callback.html
例如,类似的东西。
/**
* This callback is a returned event listener
* @callback removedCallback
* @param {number} nameOfNumberParam
* @param {string} nameOfStringParam
*/
/**
* Cleanup step.
*
* @return {removedCallback} - The removed callback
*/
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
但是,您也想问问自己……这对每个人真的有用吗,还是我只是在记录文件?如果您真正想要的是类型系统,那么Typescript可以做得更好(除了文档以外,还有很多其他好处)。
如果您只想获取文档,请考虑您的受众。对于某些受众来说,上述风格将是最好的,但更简单的话,可能还会为其他许多风格提供很好的服务:
/**
* Cleanup step.
*
* @return function - The removed callback
*/
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},