JSDoc中的动态@returns,基于@param值

时间:2018-01-17 09:39:31

标签: javascript visual-studio-code jsdoc jsdoc3

有没有办法记录这个函数,所以vscode-intellisense知道getObject("player")返回Player类型而getObject("bullet")返回Bullet类型?

/**
 * @param  {string} type
 * @return {????}
 */
function getObject(type) {
    switch (type) {
        case 'player': return new Player();
        case 'bullet': return new Bullet();
    }
}

此功能的一个示例是document.createElement(...)

document.createElement("canvas") => intellisense知道它是HTMLCanvas类型。

1 个答案:

答案 0 :(得分:1)

你不能用jsdocs做到这一点。

document.createElement对其行为使用typescript函数重载定义。您也可以这样使用*.d.ts

declare function getObject(x: 'player'): Player;
declare function getObject(x: 'bullet'): Bullet;