利用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 相关文章推荐
广告显示判断
Aug 31 Javascript
Javascript中浮点数相乘的一个解决方法
Jun 03 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
Dec 09 Javascript
js添加事件的通用方法推荐
May 15 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
JavaScript进阶(一)变量声明提升实例分析
May 09 Javascript
js实现盒子移动动画效果
Aug 09 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/09/11 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
python判断字符串是否纯数字的方法
2014/11/19 Python
Python实现的ini文件操作类分享
2014/11/20 Python
安装Python的教程-Windows
2017/07/22 Python
Python实现自动发送邮件功能
2021/03/02 Python
详解python Todo清单实战
2018/11/01 Python
python重要函数eval多种用法解析
2020/01/14 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
打架检讨书100字
2014/01/08 职场文书
《识字五》教学反思
2014/03/01 职场文书
药剂专业求职信
2014/06/20 职场文书
离婚财产处理协议书
2014/09/30 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
购房个人委托书范本
2014/10/11 职场文书
医学生自荐信范文
2015/03/05 职场文书
mysql知识点整理
2021/04/05 MySQL
MySQL数据库事务的四大特性
2022/04/20 MySQL