JSDoc - JS 重载函数/方法

Mar*_*tin 3 javascript jsdoc

我一直在尝试使用 JSDoc 记录 JS 中的重载函数:

有 2 个用例:

assignSlave(ticket, userid);
assignSlave(ticket, firstname, lastname);
Run Code Online (Sandbox Code Playgroud)

我想让它在 VSCode 中看起来像这样:

  • 情况1

    情况1

  • 案例2

    案例2

等等...

我尝试了这里给出的解决方案,但它对我不起作用:

/**
 * Test
 *
 * @function assignSlave
 * @param {String} ticket
 * @param {String} userid
 *//**
 * Test2
 *
 * @function assignSlave
 * @param {String} ticket
 * @param {String} firstname
 * @param {String} lastname
 */
function assignSlave(a, b, c){}
assignSlave()
Run Code Online (Sandbox Code Playgroud)

我明白了:

这

有没有办法实现我想要做的事情?

ETA:我尝试​​了这篇文章,但不确定它在我的情况下是如何工作的。

Tom*_*cik 6

在 TypeScript 5 中,您可以使用新@overload标签:

/**
 * @overload
 * @param {string} ticket
 * @param {string} userId
 *//**
 * @overload
 * @param {string} ticket
 * @param {string} firstname
 * @param {string} lastname
 *//**
 * @param {string} a
 * @param {string} b
 * @param {string} c
 */
function assignSlave(a, b, c) {}
Run Code Online (Sandbox Code Playgroud)

供参考:https ://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#overload-support-in-jsdoc