利用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 相关文章推荐
htm调用JS代码
Mar 15 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
Jun 03 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
Jun 01 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
setTimeout函数的神奇使用
Feb 26 Javascript
Node.Js生成比特币地址代码解析
Apr 21 Javascript
ES6 Promise对象的含义和基本用法分析
Jun 14 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
javascript数组的定义及操作实例
Nov 10 Javascript
JavaScript使用prototype属性实现继承操作示例
May 22 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
PHP原生函数一定好吗?
2014/12/08 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
一个简单的Node.js异步操作管理器分享
2014/04/29 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
iview form清除校验状态的实现
2019/09/19 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
python双向链表实现实例代码
2013/11/21 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
电话销售经理岗位职责
2013/12/07 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
商场总经理岗位职责
2014/02/03 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
本科毕业生自荐信
2014/06/02 职场文书
寒假致家长的一封信
2015/10/10 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书