利用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 相关文章推荐
javascript+xml技术实现分页浏览
Jul 27 Javascript
js 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
javascript radio 联动效果
Mar 04 Javascript
修改file按钮的默认样式实现代码
Apr 23 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
Aug 19 Javascript
js清理Word格式示例代码
Feb 13 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
PHP实现基于Redis的MessageQueue队列封装操作示例
Feb 02 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
Jun 10 jQuery
js获取本日、本周、本月的时间代码
Feb 01 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 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调用JAVA的WebService简单实例
2014/03/11 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
javascript字符串循环匹配实例分析
2015/07/17 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
浅析Git版本控制器使用
2017/12/10 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
python 命名规范知识点汇总
2020/02/14 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Unix控制后台进程都有哪些进程
2016/09/22 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
房屋公证委托书
2014/04/03 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
话题作文之自信作文
2019/11/15 职场文书