如何记录 returns 函数调用的函数(用于尾调用优化)
How to document a function that returns a function call (for tail call optimization)
我正在努力提高 JSDoc 的技能,我有这个方法:
/**
* Cleanup step.
*
* @return {Void}
*/
beforeDestroy() {
window.removeEventListener('resize', this.onResize);
},
这似乎是正确的,但对于我正常的 JavaScript 编码风格,我会这样:
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
因为如果可以的话,我总是尝试 return 函数调用(作为与尾调用优化相关的函数式编程习惯)。这引出了我的问题,如何记录一个 return 是函数调用的函数?
我天真的估计是这样的:
/**
* Cleanup step.
*
* @return {(String, Function) => Void}
*/
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
我想听听 correct/normal 对这种事情的意义。我想知道如何在函数 "returns a function-call that returns void" 或 "returns a function-call that returns a string".
之类的地方记录这样的文件
我以前见过有人问柯里化函数,这种关于文档的问题对我来说立即失控,比如一个人需要多少函数?
这样的事情对我来说似乎不合理:
* @return {(String, Function) => (Object) => Void}
比如 "doc" 需要对未来的执行有多少意识?
您使用了@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);
},
我正在努力提高 JSDoc 的技能,我有这个方法:
/**
* Cleanup step.
*
* @return {Void}
*/
beforeDestroy() {
window.removeEventListener('resize', this.onResize);
},
这似乎是正确的,但对于我正常的 JavaScript 编码风格,我会这样:
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
因为如果可以的话,我总是尝试 return 函数调用(作为与尾调用优化相关的函数式编程习惯)。这引出了我的问题,如何记录一个 return 是函数调用的函数?
我天真的估计是这样的:
/**
* Cleanup step.
*
* @return {(String, Function) => Void}
*/
beforeDestroy() {
return window.removeEventListener('resize', this.onResize);
},
我想听听 correct/normal 对这种事情的意义。我想知道如何在函数 "returns a function-call that returns void" 或 "returns a function-call that returns a string".
之类的地方记录这样的文件我以前见过有人问柯里化函数,这种关于文档的问题对我来说立即失控,比如一个人需要多少函数?
这样的事情对我来说似乎不合理:
* @return {(String, Function) => (Object) => Void}
比如 "doc" 需要对未来的执行有多少意识?
您使用了@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);
},