利用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自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
javascript操作JSON的要领总结
Dec 09 Javascript
基于jquery实现的文字淡入淡出效果
Nov 14 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
Dec 24 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
Apr 22 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
vue分页插件的使用方法
Dec 25 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
使用 MySQL Date/Time 类型
2008/03/26 PHP
php5 pdo新改动加载注意事项
2008/09/11 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
python多线程实现TCP服务端
2019/09/03 Python
python实现从ftp服务器下载文件
2020/03/03 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
学习交流会主持词
2014/04/01 职场文书
公司委托书格式
2014/08/01 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
高校教师个人总结
2015/02/10 职场文书
课改心得体会范文
2016/01/25 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP