vscode如何识别js模块的类型
Posted
技术标签:
【中文标题】vscode如何识别js模块的类型【英文标题】:how vscode recognize type of js module 【发布时间】:2020-05-16 20:37:35 【问题描述】:我是 javascript 和 typescript 的新手,我使用npm install mysql
安装 mysql 模块
我发现vscode的intellisense即使在我使用javascript的时候也能自动识别类型
就这样
并且模块源文件不包含任何.ts文件,我想知道它是如何工作的。
【问题讨论】:
mysql 模块很可能已经使用JSDoc 记录了它的方法。 VSCode 已内置支持此文档。 【参考方案1】:代码在后台下载 TS 类型。它检查 package.json 或导入来决定要获取哪些类型。 mysql的打字:
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/8f158d2d4c8459463e5e0a27cc298041483c5e22/types/mysql/index.d.ts
更多信息请点击以下链接:
https://code.visualstudio.com/docs/nodejs/working-with-javascript
【讨论】:
如果您觉得有帮助,可以将其标记为答案。【参考方案2】:mysql 包是用纯 JS 编写的,但是它包含文档。该文档被标准化为JSDoc。 VSCode 内置支持阅读本文档并将其显示给用户。 (注意:它并不支持所有的 JSDoc 标签)
来自mysql/index.js
的示例。 (source)
/**
* Create a new Connection instance.
* @param object|string config Configuration or connection string for new MySQL connection
* @return Connection A new MySQL connection
* @public
*/
exports.createConnection = function createConnection(config)
var Connection = loadClass('Connection');
var ConnectionConfig = loadClass('ConnectionConfig');
return new Connection(config: new ConnectionConfig(config));
;
@param
标签指定config
可以接收的类型。 object|string
表示可以是对象也可以是字符串。
【讨论】:
但是当我点击这个函数的'''go to definition'''选项时,它会跳转到'C:/users/xxx/AppData/Local/Microsoft/TypeScript/3.7/中的一个文件夹node_modules/@types//mysql/index.d.ts' 可能 Dauren Akilbekov 的 answer 也适用。以上是关于vscode如何识别js模块的类型的主要内容,如果未能解决你的问题,请参考以下文章
VsCode 无法识别模块(我使用的是 python 3.10)