首页 > 解决方案 > 为什么 VS Code 显示来自 JSDoc 的类型信息为 var 而不是 JavaScript 中的其他成员?

问题描述

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

function ExampleModule() {

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

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

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

我查看了文档,特别是有关支持的 JSDoc 注释的文档,但它们似乎没有解释为什么this.myMember不生成智能感知信息。

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

标签: javascriptvisual-studio-codeintellisensejsdoc

解决方案


这不是类符号的工作方式。首先你定义一个复合类型,然后你将它用于你的变量。我不知道你是否可以定义“this”类型。

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

/** @type {ExempleModule} */

推荐阅读