javascript - JSDoc:如何记录返回传递构造函数实例的函数?

标签 javascript webstorm jsdoc

例如,我有以下功能:

function createInstanceOf(ObjectConstructor) {
  return new ObjectConstructor;
}

当我将类作为参数传递时,我想让 WebStorm 自动完成工作。例如:如果我调用 createInstanceOf(ClassA)我想查看 ClassA 的自动完成例如,如果我调用 createInstanceOf(ClassB) – 为 ClassB实例。所以 JSDoc 函数必须是通用的。

使用 JSDoc 定义泛型函数并制作 @return 很容易值类型同@param ,但我没有找到治疗方法@param type 作为返回对象的构造函数。

所以这不起作用:
/**
 * @param {T} ObjectConstructor
 * @returns {T}
 * @template T
 */
function createInstanceOf(ObjectConstructor) {
  return new ObjectConstructor;
}

我也试图让它以这种方式工作:
/**
 * @param {function(new:T)} ObjectConstructor
 * @returns {T}
 * @template T
 */
function createInstanceOf(ObjectConstructor) {
  return new ObjectConstructor;
}

但也许我使用了错误的闭包类型,或者 WebStorm 无法解析这样的泛型类型。

如果 JSDoc 有多种解决方案,我想找出哪些解决方案专门用于 WebStorm IDE 自动完成功能。

谢谢

最佳答案

你可能不再需要这个了,但我也被困在这个问题上几个月了,所以对于其他想知道的人来说,你可以这样做:

/**
 * @template T
 * @param {new() => T} ObjectConstructor
 * @returns {T}
 */
function createInstanceOf(ObjectConstructor) {
  return new ObjectConstructor;
}
Got the answer from this article

关于javascript - JSDoc:如何记录返回传递构造函数实例的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51134735/

相关文章:

typescript - 使用 typescript/jsdoc 进行转换时,如何通过属性分配处理类型转换?

javascript - JSDoc 保留输出中注释的顺序

JSDOC:如何记录函数的内部变量

javascript - 在点击处理程序中调用函数,而不是运行

javascript - 箭头函数可以在类里面提升吗? (javascript)

javascript - 获取 "Unchecked runtime.lastError while running management.uninstall:"

typescript - 如何解决WebStorm中的 "Corresponding file not included in tsconfig.json"错误?

javascript - 错误 : [ng:areq] customerController not a function got undefined

javascript - WebStorm:仅在保存时可以转译 TypeScript 文件

webstorm - 在 JetBrains IDE 中重构范围内