利用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 相关文章推荐
JQUERY 浏览器判断实现函数
Aug 20 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
Aug 23 Javascript
javascript (用setTimeout而非setInterval)
Dec 28 Javascript
你必须知道的JavaScript 变量命名规则详解
May 07 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
JavaScript实现标题栏文字轮播效果代码
Oct 24 Javascript
Bootstrap 模态框(Modal)插件代码解析
Dec 21 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
Apr 02 Javascript
vue组件内部引入外部js文件的方法
Jan 18 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伪造referer实例代码
2008/09/20 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
javascript闭包的高级使用方法实例
2013/07/04 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
python plotly画柱状图代码实例
2019/12/13 Python
Django中的session用法详解
2020/03/09 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
公司接待方案
2014/03/08 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
公司年底活动方案
2014/08/17 职场文书
鸡毛信观后感
2015/06/11 职场文书
公司年会主持词范文!
2019/05/07 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers