利用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 相关文章推荐
JS DOM 操作实现代码
Aug 01 Javascript
jquery判断元素是否隐藏的多种方法
May 06 Javascript
jquery uploadify 在FF下无效的解决办法
Sep 26 Javascript
论Bootstrap3和Foundation5网格系统的异同
May 16 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
Sep 14 Javascript
微信小程序 swiper组件详解及实例代码
Oct 25 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
vue axios 在页面切换时中断请求方法 ajax
Mar 05 Javascript
js中getter和setter用法实例分析
Aug 14 Javascript
Vue使用NProgress的操作过程解析
Oct 10 Javascript
js数组中去除重复值的几种方法
Aug 03 Javascript
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
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编写和读取XML的几种方式
2013/01/12 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
js实现无缝轮播图
2020/03/09 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Django 路由层URLconf的实现
2019/12/30 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
耐克亚太地区:Nike APAC
2019/12/07 全球购物
欢度春节标语
2014/07/01 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
骨干教师申报材料
2014/12/17 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
毕业证明模板
2015/06/19 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
总结Python使用过程中的bug
2021/06/18 Python