【问题标题】:Force Intellisense to recognize Assigned Variable Types强制 Intellisense 识别分配的变量类型
【发布时间】:2016-06-16 21:47:49
【问题描述】:

我有一个异步函数,它返回一个包含 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 智能感知文档记录变量,但在 arrayOfAarrayOfD 上没有任何智能感知。

但是,如果我保留文档和变量初始化,但没有为变量分配任何东西,我会得到适当的智能感知。

例如

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

arrayOfA 将在那里获得智能感知,但显然此时不会分配实际结果。

【问题讨论】:

    标签: javascript visual-studio intellisense javascript-intellisense


    【解决方案1】:

    您似乎可以尝试使用“value”参数记录结果本身的结构。

    例如

    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 注释用词不当——它导致 Intellisense 直接执行您传递的 Javascript 文字以确定标识符的类型结构(抱歉,如果我的符号有点生疏)。

    不保证它会起作用,只是猜测。检查Documenting Arrays in JSDoc TypeDefs (34864291) 以在 function process_response(response) 下查看此示例。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2019-03-25
      • 1970-01-01
      • 2015-10-23
      • 2016-08-25
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多