基于@param值的JSDoc中的动态@return

3

有没有一种方法来记录函数,使得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个回答

2
你不能使用jsdocs来实现这个功能。 document.createElement 使用typescript函数重载定义其行为。你也可以这样使用*.d.ts
declare function getObject(x: 'player'): Player;
declare function getObject(x: 'bullet'): Bullet;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接