首页 > 解决方案 > 我们如何使用 jsddoc 记录作为函数作为参数传入的回调返回值

问题描述

我目前使用当前的 jsdoc 语法记录了一个 javascript 函数和其他代码(我欢迎更改)

function exportStuff(dataObject) {
  /**
   *
   *  @param {Object} dataObject - some details about it
   *  @param {function} dataObject.animationStart
   *  @param {function} dataObject.ajax - when invoked, returns a promise/.thenable, but I want to know how to state that it does here in the jsdoc
   *  what if I tried:
   *  @callback {function} dataObject.ajax (not sure how to embed @param and @return here)
   *
   */

}

https://jsdoc.app/tags-callback.html对我来说没有多大意义......但是在仔细研究之后......也许他们在他们的例子中意味着将参数类型定义为@param {requestCallback}稍后作为单独的我们需要定义的注释,@callback requestCallback并记录定义的@param 和@returns

我的问题有点不同,因为我想使用 jsdoc 样式,但也知道如何在一个地方(而不是单独)内联所有参数并返回传入函数的类型以用作回调(抱歉重复)

谢谢你的时间!

干杯

标签: javascriptsyntaxcommentsjsdoc

解决方案


function类型的工作方式如下:

function({paramTypes}):returnType

例如;

不返回任何内容的事件处理程序;

@param {function({Event}):void}

标准sum方法:

@param {function({number}, {number}):number}

this可以使用以下方式指定预期类型:

@param {function(this:Foo):void}

类型的结果new可以通过以下方式指定:

@param {function(new:Foo):void}

您还可以传播操作:

@param {function(string, ...number): number}

可选 with=并且可以为 null with ?

@param {function(?string=, number=)}

- 通过闭包类型系统中的类型。


推荐阅读