利用types增强vscode中js代码提示功能详解

作者:coolcao 时间:2023-07-15 05:57:08 

使用 types 增强vscode中javascript代码提示功能

微软的vscode编辑器是开发typescript项目的不二首选,其本身也是采用typescript开发的。

使用过ts的同学都知道 *.d.ts 类型声明文件,其管理工具,从最初的 tsd,到后来的 typings,一直到现在的@types,类型声明文件为ts的智能提示,类型检查提供了有力支持。

我们也可以使用类型声明文件,增强vscode编辑javascript时的智能提示。

关于vscode这方面更深的说明,请访问以下链接:

      1、https://code.visualstudio.com/docs/languages/javascript

      2、https://github.com/Microsoft/TypeScript/wiki/JavaScript-Language-Service-in-Visual-Studio

      3、https://code.visualstudio.com/docs/editor/intellisense

安装 types 文件

现在,我们可以不依赖typings直接使用npm安装所需要的types类型文件。

比如,我们要安装sequelize的类型文件,可以直接使用:


npm install @types/sequelize --save-dev

安装完成后,我们在 node_modules目录下发现有一个@types目录,该目录里就是所安装的所有的类型声明文件。

如果有的第三方npm包官方未提供类型声明文件时,可能会安装出错,找不到相应的包。这时,就没法利用其增强js代码的提示功能。

如果你熟悉使用ts如何编写*.d.ts文件,也可以自己写一个。

配置 jsconfig.json 文件

对于jsconfig.json文件的详细说明,请参照这里。

在jsconfig.json文件中添加:


"include": [
"model/**",
"service/**"
],
"typeAcquisition": {
"include": [
 "sequelize"
]
}

其中typeAcquisition参数是必配的,标识启用类型感知功能,里面的include标识对哪个包启用。

上面的include不是必须的,只是用来标识jsconfig.json文件对哪些文件起作用。

开启后,如图:

利用types增强vscode中js代码提示功能详解

我们上图中例子提示的就是sequelize包中Model类的实例方法和属性。

vscode对智能感知的图标,也给了一定的汇总:

利用types增强vscode中js代码提示功能详解

在js文件中启用语义检查

如果要在js中启用类型检查,可以在文件最上面添加 // @ts-check 注释。


// @ts-check
let easy = 'abc'
easy = 123 // Error: Type '123' is not assignable to type 'string'

或者在 jsconfig.json中进行配置:


{
 "compilerOptions": {
   "checkJs": true
 },
 "exclude": [
   "node_modules"
 ]
}

详情请参阅文档

来源:http://coolcao.com/2017/07/06/intelli-sense-in-vscode/

标签:vscode,js,代码提示
0
投稿

猜你喜欢

  • Python中的特殊语法:filter、map、reduce、lambda介绍

    2021-04-26 12:39:57
  • 在SQL Server中实现最短路径搜索的解决方法

    2024-01-24 13:47:10
  • 再谈float菜单局中

    2009-12-21 19:57:00
  • PHP的mysqli_select_db()函数讲解

    2023-06-07 18:59:44
  • PHP微信支付实例解析

    2024-05-02 17:15:56
  • anaconda python3.8安装后降级

    2021-09-12 05:28:51
  • python 中的 BeautifulSoup 网页使用方法解析

    2022-06-25 19:09:26
  • Golang TCP粘包拆包问题的解决方法

    2023-07-18 11:04:43
  • django多对多表的创建,级联删除及手动创建第三张表

    2022-08-13 02:10:48
  • python中类变量与成员变量的使用注意点总结

    2022-01-08 03:39:51
  • python利用datetime模块计算程序运行时间问题

    2022-05-24 03:13:41
  • Python二维数组实现求出3*3矩阵对角线元素的和示例

    2021-10-03 20:19:24
  • python实现查询IP地址所在地

    2021-09-08 17:18:43
  • Python中loguru日志库的使用

    2023-03-02 13:24:27
  • 教你轻松学会SQL Server记录轮班的技巧

    2009-02-19 17:38:00
  • 详解Python中元组的三个不常用特性

    2021-09-02 05:49:35
  • [新手必看]15个asp编程常见问题解答

    2007-08-22 13:07:00
  • python多线程http下载实现示例

    2023-12-03 00:15:34
  • Python即时网络爬虫项目启动说明详解

    2022-11-29 18:09:24
  • 如何安装MySQL Community Server 5.6.39

    2024-01-26 23:07:29
  • asp之家 网络编程 m.aspxhome.com