如何在JSDoc中记录事件处理程序?

SBU*_*OLD 5 javascript documentation jsdoc

假设我有一个这样的类:

function myClass(q) {
  this.someFunction = function(e) {
      console.log("Click event");
  };

  jQuery(q).click(this.someFunction);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法向JSDoc表明someFunction不仅仅是一个应该直接调用的函数,而是一个事件处理程序?

我看到了@event标签,但是如果我理解正确的话,这更多的是记录我的类中的一个函数,我认为它是一个事件(客户端代码也将注册,我的类将在需要时触发)而不是事件处理程序功能?

Chr*_*sic 21

关键字是@listens

用法示例:

/**
 * Outputs the event that happened
 *
 * @param {MyEvent} e - The observable event.
 * @listens MyEvent
 */
function myEventLogger(e) {
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

推论是用于举起活动的@fires关键字.

  • 我发现这篇文章正在寻找一种方法来记录“on”事件,例如 socket.io 的 `io.on('connection', function(socket) { // do things } );` 和 jQuery 的 `$(document)。 on('click', '.my_class', function() { // 执行操作 } );`。当使用“@listens connection”之类的东西时,生成的文档中似乎不包含相关 jsdoc 注释的链接?也许是因为无法定义必然的“@fires”事件 - 例如创建“connection”事件的socket.io代码?与 jQuery 示例相同 - 如何为单击处理程序定义“@fires”事件? (2认同)

Mar*_*aio 0

不,没有办法记录事件处理程序。

因此,最好的方法是将其记录为普通函数,可能用粗体文本或大写字母编写其描述,即“事件处理程序”。

您可能已经知道了这一点,但以防万一:您可以通过简单地将文本包装到 html 标签中以粗体书写<strong></strong>

这个答案现已被弃用,但它不允许我删除它。

  • 您可以对其进行编辑,使用删除线来弃用旧答案,然后给出正确答案或引导用户找到其他人的正确答案。 (4认同)
  • 这个答案应该被删除。 (2认同)
  • @Chris Marisic:我同意,但它不允许我删除它,因为这是公认的答案。 (2认同)