利用types增强vscode中js代码提示功能详解
作者:coolcao 发布时间:2023-07-15 05:57:08
使用 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文件对哪些文件起作用。
开启后,如图:
我们上图中例子提示的就是sequelize包中Model类的实例方法和属性。
vscode对智能感知的图标,也给了一定的汇总:
在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"
]
}
详情请参阅文档
来源:http://coolcao.com/2017/07/06/intelli-sense-in-vscode/
猜你喜欢
- format函数的调用format函数可以被直接调用或在print函数中以占位符实现格式化调用。在**2.6**版本前,占位符仍和其他语言一
- python异步IO初探探索异步IO执之前,先说说IO的种类1.阻塞IO最简单,即读写数据时,需要等待操作完成,才能继续执行。进阶的做法就是
- python应该是近几年比较火的语言之一,很多人刚学python不知道该如何学习,尤其是没有编程基础想要从事程序员工作的小白,想必应该都会有
- <html> <head> <script type="text/javascript"&
- <% Function ReplaceUrl2(HTMLstr) Dim n,st
- 前言我们都知道时区,标准时区是UTC时区,django默认使用的就是UTC时区,所以我们存储在数据库中的时间是UTC的时间,但是当我们做的网
- Selenium的介绍、配置和调用Selenium(浏览器自动化测试框架) 是一个用于Web应用程序测试的工具。Selenium测
- 读取binlog,方法有二:1.使用mysqlbinlog,详细用法,请参考MySQL手册2.使用MySQL的自带工具,SHOW BINLO
- 逢七拍腿游戏几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿。现在从1数到99,假设每个人都没有错,计
- 配合上一篇文章的联系人应用(https://www.aspxhome.com/article/161160.htm),实现配套的基于node
- image.jsp------------------------------生成随机验证码图片的Jsp页面 代码如下: <
- 四种基本的函数类型局部变量 就是在函数内部定义的变量【作用域仅局限于函数内部】不同的函数 可以定义相同的局部变量,但是各自用各自的 不会产生
- 前言最近在写Vue项目的时候,遇到了一个问题,我从A路由使用parmas方式传参跳转到B路由,然后从B路由跳转到C路由,再从C路由返回B路由
- 前言工作中经常会使用到将宽表变成窄表,例如这样的形式编号编码单位1单位2单位3单位4.................. &nbs
- 本文实例讲述了Python中列表元素转为数字的方法。分享给大家供大家参考,具体如下:有一个数字字符的列表:numbers = ['2
- 如果用树作为索引的数据结构,每查找一次数据就会从磁盘中读取树的一个节点,也就是一页,而二叉树的每个节点只存储一条数据,并不能填满一页的存储空
- 方法1:加关键字 DISTINCT在mysql中,可以利用“SELECT”语句和&ldquo
- sql代码如下:CREATE PROCEDURE Proname //使用CREATE PROCED
- 本文实例为大家分享了vue实现滑动验证条的具体代码,供大家参考,具体内容如下效果代码VerifySlider.vue<template
- 当我们学习python的时候,总会用到一些常用的模块,接下来我就详细讲解下利用两种不同的方式画饼状图。首先利用【Tkinter】中的canv