有没有办法记录这个函数,所以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
类型。
答案 0 :(得分:1)
你不能用jsdocs做到这一点。
document.createElement
对其行为使用typescript函数重载定义。您也可以这样使用*.d.ts
:
declare function getObject(x: 'player'): Player;
declare function getObject(x: 'bullet'): Bullet;