VS Code 中的自动完成

原文

vscode 1.6.x 发布了,有一系列的新特性,我个人比较开心见到 ts/js 语法着色有提升,我还专门搞了个 issue 吐槽过这个。

当然今天不是扯 vscode 的更新节奏很快的梗,而是扒一扒它的自动完成上一篇文章已经介绍过,自动完成typings 紧密相关。

typings 官网描述:

The TypeScript Definition Manager.

显然是要扯到 typescript 了,有些哥们发誓说这辈子都不用 typescript ,忍一忍,一会就要说到 js 了。

Typescript Definition

Typescript Definition 是啥?官网 上也没瞧出个所以然来,不了解 ts 显然不能理解这鬼。这个时候就该我出场了。

随意搞点 ts 的代码:

报错了,设置严格一点,甚至编译不会通过。想象下如果 abcde 是第三方库如 jQuery 等就尴尬了。

如上图,简单地 declare 下就能解决这个问题,这个过程可以称作 define,将上述 declare 代码抽到一个 .d.ts 结尾的文件中单独维护,这个文件叫声明文件(declaration file),也可以称之为 definition 。 报错的问题解决了,现在有新的问题,一大堆第三方库的 definition 怎样维护更新?怎样查找安装?

管理 definition

最早的一款工具叫 tsd ,因为它只能安装全局类型声明,于是就被抛弃了。

这个时候我们的 typings 隆重登场,它可以解决几乎所有 definition 的问题,唯一蛋疼的地方是要安装一下,以及各种奇怪的命令行参数。

ts 2.0 之后,可以用 npm 来管理 definition ,你只需这样:

npm install @types/jquery -S

详情可以参阅这篇文章

VS Code 中的 definition

definition 的作用当然远不止给 ts 本身来用,编辑器可以利用它来做非常强大的代码提示。 下图就是安装 definition 之前和之后的效果。

definition 当然在其他编辑器中也有类似的实现,但体验没有哪个能比得上 vscode

参考文章

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏何俊林

一种视频预加载的方案

前言:视频的预加载是提高用户体验的重要因素。预加载成为网络视频播放不可或缺的一个技术环节。 预加载的形式: 1.边存边播:下载多少播放多少。 优点:快速加载播...

2546
来自专栏北京马哥教育

Python3爬虫抓取网易云音乐热评实战

? 前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的...

4546
来自专栏静晴轩

使用ESLint & Prettier美化Vue代码

3927
来自专栏信安之路

锁首技术总结

在公司实习也有一个月了,学到不少东西,不知不觉就要大四了,回首漫漫安全路,不禁感慨万千:我入安全的时间比较晚,大一大二跟着老师参加 Android 移动应用开发...

792
来自专栏漏斗社区

黑客游戏| Owasp juice shop (三)

0x01 前言 继续上一篇的内容,往下闯关。想了解如何搭建的同学可参考第一篇文章。 看第一篇:黑客游戏| Owasp juice shop (一) 0x0...

3366
来自专栏知晓程序

想用小程序新能力为 App 引流?且慢!想要用上它可没那么简单

首先,最引人瞩目的是「小程序唤起 App」的功能,它代表小程序与 App 间再添打通通道;其次,公开课上承诺的「标题栏开放自定义」能力,也在此次新能力开放范围中...

741
来自专栏码农小知识

使用GDB来调试Python里optimized out的问题

http://www.cnblogs.com/dkblog/p/3806277.html

52519
来自专栏小詹同学

Python程序员需要掌握的网络爬虫技术

当下是一个大数据的时代,各个行业都离不开数据的支持,因此,网络爬虫应运而生。编写网络爬虫当下最为火热的语言毫无疑问是Python,原因是,Python开发爬虫相...

1213
来自专栏晨星先生的自留地

niushop任意文件上传1

1514
来自专栏向治洪

社会化分享

实现微信(好友、朋友圈)、QQ(好友、空间)、新浪微博等社会化分享方式。 前言 现在的app几乎里面都包括社会化分享和第三方登录这两个功能,前段时间给大家...

1976

扫码关注云+社区