0

我有一个异步函数,它返回一个4个子数组的数组。然后我将这个数组分解成变量。我试图让智能感知认识到这些新的变量,但它不是真正的工作:强制智能感知识别分配的变量类型

asyncGet().then(function(results){ 
    // results is an array of 4 arrays 

    /// <var name="arrayOfA" type="Array" elementType="A" /> 
    var arrayOfA = results[0]; 
    /// <var name="arrayOfB" type="Array" elementType="B" /> 
    var arrayOfB = results[1]; 
    /// <var name="arrayOfC" type="Array" elementType="C" /> 
    var arrayOfC = results[2]; 
    /// <var name="arrayOfD" type="Array" elementType="D" /> 
    var arrayOfD = results[3]; 
}) 

正如你可以看到我已经尝试过记录与标准的XML文档的IntelliSense的变量,但我没有得到任何对arrayOfAarrayOfD的智能感知。但是,如果我保留文档和变量初始化,但没有分配变量任何东西,我会得到适当的智能感知。

/// <var name="arrayOfA" type="Array" elementType="A" /> 
    var arrayOfA; 

arrayOfA将获得智能那里,但很明显,在这一点上不会分配的实际效果。

回答

1

看起来你可以尝试的是通过使用“value”参数来记录结果本身的结构。

E.g.

asyncGet().then(function(results){ 
    /// <param name="results" value="{0:new A(), 1:new B(), 2:new C(), 3:new D()}">four-part return array</param> 

“价值” XML注释是用词不当 - 它会导致智能感知到直接执行JavaScript的文字传递给确定标识符的类型结构(抱歉,如果我的符号是有点生疏)。

没有保证它会工作,只是一个猜测。请检查Documenting Arrays in JSDoc TypeDefs (34864291)以查看函数process_response(响应)的示例。

一旦您将正确的类型信息提供给结果数组,那么当您将它指定给ArrayOf变量时,它可能不会混淆智能感知。

相关问题