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


Posted in Javascript onJuly 07, 2017

使用 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"
  ]
}

详情请参阅文档

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
CCPry JS类库 代码
Oct 30 Javascript
jQuery总体架构的理解分析
Mar 07 Javascript
js防止表单重复提交实现代码
Sep 05 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
Apr 17 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
Nov 03 Javascript
深入理解选择框脚本[推荐]
Dec 13 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
微信小程序module.exports模块化操作实例浅析
Dec 20 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
May 23 Javascript
Node.js API详解之 assert模块用法实例分析
May 26 Javascript
Vue 401配合Vuex防止多次弹框的案例
Nov 11 Javascript
protractor的安装与基本使用教程
Jul 07 #Javascript
vue.js实例todoList项目
Jul 07 #Javascript
微信JSAPI Ticket接口签名详解
Jun 28 #Javascript
Angular.js自动化测试之protractor详解
Jul 07 #Javascript
vue.js全局API之nextTick全面解析
Jul 07 #Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
Jul 07 #Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 #Javascript
You might like
Memcache 在PHP中的使用技巧
2010/02/08 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
Python fileinput模块使用实例
2015/06/03 Python
Python读取键盘输入的2种方法
2015/06/16 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
美国在线宠物商店:Chewy
2019/01/12 全球购物
应用化学专业本科生求职信
2013/09/29 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
党员创先争优承诺书
2014/03/26 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
python中的None与NULL用法说明
2021/05/25 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python