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

标签 javascript visual-studio intellisense javascript-intellisense

我有一个异步函数,它返回一个由 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 将在那里获得智能感知,但显然此时不会分配实际结果。

最佳答案

您似乎可以尝试使用“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)函数 process_response(response) 下查看相关示例。

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

关于javascript - 强制智能感知识别分配的变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35774365/

相关文章:

javascript - 如果我在 ng-click 中调用多个函数,会以什么顺序或方式调用它们?

javascript - 为什么 Array.some() 方法表现不同?

javascript - jQuery - 无法获取 append 元素的属性

angular - Visual Studio 2015 RC3 TypeScript Intellisense 不再工作

JavaScript 切换显示

c# - 用一些颜色或标签注释代码

c# - 如何在运行时查找具有已知属性的MSBuild的哪个运行版本-.NET Core或.NET Framework

c# - Visual Studio : find all references of a specific type

c++ - 使用预编译头文件时,使用 vscode 在智能感知中自动包含头文件

ASP.NET Intellisense 在属性中不起作用