利用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 相关文章推荐
javascript 窗口加载蒙板 内嵌网页内容
Nov 19 Javascript
jQuery操作 input type=checkbox的实现代码
Jun 14 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
深入理解Vue官方文档梳理之全局API
Nov 22 Javascript
详解webpack 入门与解析
Apr 09 Javascript
webpack4.0 入门实践教程
Oct 08 Javascript
JavaScript代码调试方法实例小结
Jan 05 Javascript
JavaScript中filter的用法实例分析
Feb 27 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
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
php的memcached客户端memcached
2011/06/14 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
2018/07/25 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python图像常规操作
2017/11/11 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
PyTorch中的C++扩展实现
2020/04/02 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
大专生简历的自我评价
2013/11/26 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
廉洁自律承诺书
2014/03/27 职场文书
个人欠款担保书
2014/05/20 职场文书
幼师求职自荐信
2014/05/31 职场文书
分家协议书范本
2016/03/22 职场文书