例如,我具有以下功能:
function createInstanceOf(ObjectConstructor) {
return new ObjectConstructor;
}
我希望在将类作为参数传递时使WebStorm自动完成工作。例如:如果我调用createInstanceOf(ClassA)
,我想查看ClassA
实例的自动补全,如果我调用createInstanceOf(ClassB)
– ClassB
实例,则自动补全。因此,JSDoc函数必须是通用的。
使用JSDoc定义泛型函数并使@return
的值类型与@param
相同是很容易的,但是我发现没有办法将@param
类型视为用于返回的对象。
所以这不起作用:
/**
* @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无法解析此类通用类型。
如果有几种解决方案,我想找出哪种解决方案特别适合WebStorm IDE自动完成。
谢谢
答案 0 :(得分:0)
您可能不再需要此功能,但是我也已经坚持了几个月,所以对于其他人想知道的,您可以这样做:
/**
* @template T
* @param {new() => T} ObjectConstructor
* @returns {T}
*/
function createInstanceOf(ObjectConstructor) {
return new ObjectConstructor;
}