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/