jsDoc:如何使我的方法的 @return 类型成为它的局部变量类型?

jsDoc : How do I make the @return type of my method the type of a local variable from it?

我正在制作一个 javascript 项目,我想让它尽可能干净,为此我在方法的顶部使用了 jsDoc。 对于其中之一,我想知道是否可以将局部变量的类型指定为 return 类型?

像这样:

/**
* Add a component to the gameObject
* @param {Function} component to add
* @return {comp.constructor.name}
*/
addComponent(component){
    let comp = eval("new Tzu." + component.name + "({gameObject : this});");
    this.behaviors.push(comp);

    return comp;
} 

我希望 @return 是 comp

的类型

第4行当然是完全错误的

谢谢!

你应该可以做类似的事情

let test = 'test';

/**
 * @returns {typeof test}
 */
function doSomething(test) {
    return test;
}

附带说明一下,您真的不应该使用 eval。有关详细信息,请参阅 this