利用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 相关文章推荐
分享27个jQuery 表单插件集合推荐
Apr 25 Javascript
JavaScript中的Truthy和Falsy介绍
Jan 01 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
实现无刷新联动例子汇总
May 20 Javascript
JavaScript实现简单的tab选项卡切换
Jan 05 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
angularJs中$scope数据序列化的实例
Sep 30 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
Dec 11 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
vue中 this.$set的使用详解
Nov 17 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
2017/02/18 PHP
PHP Include文件实例讲解
2019/02/15 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
在python中使用nohup命令说明
2020/04/16 Python
python自定义函数def的应用详解
2020/06/03 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
品质主管的岗位职责
2013/12/04 职场文书
经理管理专业自荐信范文
2013/12/31 职场文书
社团活动总结报告
2014/06/27 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang