例如,我有以下功能:
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/