强制智能感知识别分配的变量类型

时间:2016-03-03 14:05:59

标签: javascript visual-studio intellisense javascript-intellisense

我有一个异步函数,它返回一个包含4个子数组的数组。然后我将该数组拆分为变量。我正试图让intellisense识别这些新变量,但它并没有真正起作用:

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 个答案:

答案 0 :(得分:1)

似乎您可以尝试通过使用&#34;值&#34;来记录结果本身的结构。参数。

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>

&#34;价值&#34; XML注释是用词不当 - 它会导致Intellisense直接执行您传递的Javascript文字以确定标识符的类型结构(抱歉,如果我的符号有点生锈)。

不保证它会起作用,只是一个猜测。查看Documenting Arrays in JSDoc TypeDefs (34864291),在功能process_response(响应)下查看此示例。

一旦你给结果数组提供了正确的类型信息,那么当你将它分配给ArrayOf变量时,它可能不会混淆Intellisense。