如何使用 JSDoc 命名参数

How to JSDoc named arguments

在我的一个 JavaScript 文件中,我必须引入一些可选参数,所以我遵循 this 指南并得出以下方法声明:

function my_func({
    opt1,
    opt2 = 250,
    opt3 = "A message.",
    opt4 = null
}) {
    // Do something
}

我可以这样称呼它:

my_func({
        opt1: "boom",
        opt4: document.getElementById("some-element"),
        opt3: "A different message.",
        opt2: 200
    });

我什至可以删除一些参数并将它们按任意顺序排列。
现在,我想使用 JSDoc 记录它,但我很困惑,我的 JSDoc 评论会是什么样子?因为那应该定义我必须在花括号内输入参数,而且我还必须使用键。

如果有任何其他方式我可以使用命名参数 and/or 可选参数,那么我也将不胜感激。

您可以为此使用 @typedef。检查 this documentation.

针对您的情况:

/**
 * @typedef {Object} NameMeAsYouLike
 * @property {string} opt1 - opt1 description
 * @property {string} [opt2=250] - opt2 description
 * @property {string} [opt3=A message.] - opt3 description
 * @property {number} [opt4=null] - opt4 description
 */

/**
 * @param {NameMeAsYouLike} name me as you like 
 */
function my_func({
    opt1,
    opt2 = 250,
    opt3 = "A message.",
    opt4 = null
}) {
    // Do something
}