javascript - 为什么 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
不生成智能感知信息。
是否有任何方法可以改进显示的成员类型信息,或者是否存在有关支持的语言结构的更详细信息?
解决方案
这不是类符号的工作方式。首先你定义一个复合类型,然后你将它用于你的变量。我不知道你是否可以定义“this”类型。
/**
* @typedef {Object} ExempleModule
* @property {string} myMember
*/
/** @type {ExempleModule} */
推荐阅读
- debugging - 当我每次通过 vscode 调试器运行纱线测试时,vscode 关于“--inspect-brk”的错误
- javascript - 所有整数的异或
- javascript - 试图模拟 exp 增益
- r - 闪亮的下载管理器错误:“文件”必须是字符串或连接
- java - 部署tomcat webapp时出错| java.lang.IllegalStateException: ContainerBase.addChild
- google-cloud-dataproc - 如何通过 Cloud Composer 为 Google Cloud Dataproc 设置 CPUS 配额?
- android - RAD的Android应用程序中的自签名证书
- angular - 等到在 ionic-angular 的 firebase 上触发触发器
- objective-c - 如何清理 NSTextView?
- image-processing - 与机器人技术相结合的图像识别语言是什么