【发布时间】:2022-11-02 21:16:03
【问题描述】:
使用箭头函数时(例如在文档元素事件处理程序上),它们在 VS Code 大纲中的事件处理程序名称之后被标记。
因为我有很多,所以大纲对于快速导航到某个大纲没什么帮助。
如何注释此类箭头函数的名称?
使用 JSDoc 可以很好地用于参数描述,但我还没有弄清楚如何添加名称。我希望@function 标签可以这样做,但事实并非如此。 :(
/**
* @function onMyButtonClick
* @param {Event} event Triggering event.
*/
document.getElementById("my-button").onclick = (event) => { /* my function */ };
使用函数分配而不是箭头函数在大纲中看起来不错,但是(不必提及)它是不是与箭头函数相同(例如 this 上下文丢失)。所以这不是一个解决方案。
/**
* @param {Event} event Triggering event.
*/
document.getElementById("my-button").onclick = function onMyButtonClick (event) { /* my function */ };
【问题讨论】:
-
您是否尝试过使用
@name? jsdoc.app/tags-name.html -
this 对您有帮助吗?
-
@KonradLinkowski:是的,我也试过
@name和@alias。也没有工作。 -
在不同的行中声明箭头函数怎么样?
-
@bbbbbbbboat:谢谢,这让我更好地理解了箭头函数作为对属性的分配——在我的示例中为
onclick,因此函数的名称是“onclick”是合乎逻辑的,因为这是它被分配的位置。 JS 知道链式赋值,所以我可以使用let onMyButtonClick = document.getElementById("my-button").onclick = (event) => { /* my function */ };,它在大纲中显示一个变量onMyButtonClick和一个嵌套函数onclick。没有我希望的那么好,但可能是最接近的。
标签: javascript visual-studio-code jsdoc arrow-functions