当前位置: 首页 > 知识库问答 >
问题:

如何在JSDoc中记录数组解构参数

刘玉石
2023-03-14

给定以下代码,如何使用最新的JSDoc正确记录它?

function docMe([foo, bar = null, baz = 1]) { 
  /* */ 
}

我尝试过这个:

/**
 * @param {Array} options Array containing the options.
 * @param {HTMLElement} options[0].foo An HTML element.
 * @param {Object} [options[1].bar] An object.
 * @param {Number} [options[2].baz] A number.
 */

显然这不起作用,JSDoc留档提到的只是如何记录去结构化对象参数,而不是去结构化数组参数。

共有1个答案

郎子平
2023-03-14

在撰写本文时,闭包编译器中存在一个尚未解决的问题。

该线程产生3个不完美的解决方案:

1: JSDocs3的@param:

/**
 * Assign the project to an employee.
 * @param {Array} param1
 * @param {string} param1.foo
 * @param {*?} param1.bar
 * @param {number} param1.baz
 */
function docMe([foo, bar = null, baz = 1]) {
    // ...
};

2: 报告使用VSCode(我不是用户,因此无法确认)

/**
 * @param {[foo, bar, baz]: [string, *, Number]} param1
 */
function docMe([foo, bar = null, baz = 1]) {
  // ...
}

3: 对于闭包编译器:等待问题得到解决,然后使用该格式。它显然正在等待修复,并且未被阻止,因此希望它很快得到解决。

 类似资料:
  • 我有一个以对象数组作为参数的函数,并希望使用JSDOC来描述参数(包括数组中对象的属性),如本例所示: 其中过滤器如下所示: 如何在jsdoc3中记录属性id和值?

  • 我有一个数组,看起来像这样: 它是一个任意长度的数组,带有许多重复字段(为了清楚起见,我将其减少为两个字段)。这被传递到JavaScript方法中。 我想知道你将如何在JSDoc中记录这一点。例如,你将如何记录问号所在的类型?

  • 有下一个例子: 知道locale属性包含的是来自数据库的dictionary对象,我如何用JSDoc记录其内部属性? 目前,我正在考虑为我的区域设置对象键入typedef,那么我可以将locale属性设置为我定义的类型的数组吗?这样做对吗?

  • 当参数类型可以混合时,如何使用JSDoc在JavaScript中记录方法? 我有一个对话框对象的方法,我可以显示HTML或我自己的可视对象。JSDoc方法如下所示: 因为JS不允许方法重载,所以我需要创建这些类型的方法,其中方法中的参数可以是两种不同的类型。有没有办法在JSDoc中记录这一点,或者JSDoc只能让你记录一种类型的参数? 另外,您将如何记录类型的参数?也就是说,传入的对象不是类型。准

  • 我有一个函数返回这样的数组:其中索引0是布尔数组,其次是布尔数组。如何以JSDoc返回类型记录此内容。 我试过:,它产生“无法解析…”。。。“无效的类型表达式..”错误

  • 我有一个返回构造函数的javascript函数(见下面的代码示例)。我该如何用jsdoc的@returns标记来记录这一点。执行@returns{MyConstructor}似乎不正确,因为这意味着我返回的是“MyConstructor”的实例,而不是构造函数本身,对吗?