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 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2549
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

2023
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1531
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3126
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2940
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2650
来自专栏跟着阿笨一起玩NET

C#巧用Excel模版变成把Table打印出来

转载:http://blog.csdn.net/gwblue/article/details/38865525

1592
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

2115
来自专栏c#开发者

解决msmq接收远程主机私有队列消息的问题!

通过调用windows\system32\mqoa.dll 这个Message Queuing ActiveX Interface API函数就可以做到; 下面...

5277
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

2251

扫码关注云+社区