javascript - 为什么 VS Code 显示 JSDoc 中 var 的类型信息,而不显示 JavaScript 中其他成员的类型信息?

标签 javascript visual-studio-code intellisense jsdoc

Visual Studio Code 中的以下智能感知差异让我感到困惑:

function ExampleModule() {

    /** @type { string } */
    this.myMember; // tooltip shows 'any'

    /** @type { string } */
    var mySecondMember; // tooltip shows 'string'
}

我想通过JSDoc向我的模块添加类型信息,这对于方法签名等某些情况很有效,并且显然它适用于使用var关键字声明的变量,但如果我将成员添加到对象中(如 this 关键字所示),则不会。

我查看了文档,特别是 this document about supported JSDoc comments ,但他们似乎没有解释为什么 this.myMember 不生成智能感知信息。

是否有任何方法可以改进为成员显示的类型信息,或者是否存在有关支持的语言结构的更详细信息?

最佳答案

这不是类表示法的工作原理。 首先定义一个复合类型,然后将其用于变量。 我不知道你是否可以定义“this”类型。

/**
 * @typedef {Object} ExempleModule
 * @property {string} myMember
 */

/** @type {ExempleModule} */

关于javascript - 为什么 VS Code 显示 JSDoc 中 var 的类型信息,而不显示 JavaScript 中其他成员的类型信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50579395/

相关文章:

javascript - 需要页面上其他 ID 的动画,包括 jsfiddle

javascript - 如何匹配 HTML5 Canvas 中的水平线?

go - 无法在 Go 调试器中调用函数

c# dotnet CLI "error: There are no versions available for the package ' Newtonsoft.Json'。”

intellisense - Webstorm 中的 Sails.js 智能感知

javascript - 使用 JS 在本地编辑和保存文件

visual-studio-code - VSCODE checkJs 找不到模块

python - Intellisense 不适用于 Visual Studio Code 中的 Unreal

c# - 从 Visual Studio for C# 的流畅接口(interface)类智能感知中隐藏 GetHashCode/Equals/ToString?

javascript - iframe设置内容