Typescript 精彩履历

2,894 阅读3分钟

本章节和后续章节都以 Typescript 的口吻自述,就是这么自信(自恋)。

兵法云:知己知彼,百战不殆(语出《孙子·谋攻篇》)(一个前端开始聊兵法,瞎搞,凑字数)。引用此主要想说,要用我就先看看我漂亮的履历吧。

自我介绍

我是 Microsoft 公司注册商标(来头大,后台硬)。

我是 JavaScript 的一个超集,主要提供类型系统对 ES6 的支持

我可以编译成纯的 JavaScript 代码,支持任意浏览器,任意环境,任意系统并且是开源的,开源于 GitHub 上。

我还在不断的完善中,会不断有新的特性加进来,所以你得时常关注我的成长。

如果你对我一见钟情,那就好好了解熟悉我;

如果你对我爱的山无棱天地合,那就在项目中应用我;

如果你对我没感觉,那继续回去写你的 Javascript 吧。

我好在哪里

增强代码的可读性和可维护性

  • 在编译阶段就可以发现大部分错误,总比在运行时候出错好,你说呢?
  • 类型系统是最好的文档,大部分的函数看看类型的定义就可以知道如何使用了;
  • 增强了编辑器和 IDE 的功能,比如代码补全、接口提示、跳转到定义、重构等;

我有包容心

  • .js 文件可以直接重命名为 .ts 即可;
  • 可以定义从简单到复杂的几乎一切类型;
  • 即使不显式的定义类型,也能够自动做出类型推论;
  • 即使在我这边编译报错,也可以生成 JavaScript 文件;
  • 兼容第三方库,即使第三方库不是用我写的,也可以编写单独的类型文件给我读取;

拥有强大活跃的社区

  • 符合 ES6 规范,也支持部分 ESNext 草案的规范(有眼光);
  • 大部分第三方库都有提供给我的类型定义文件(圈内有名,后台硬);
  • Google 开发的 Angular2 就是用我来编写的(傲娇);
  • ...

当然了,我也不是完美的

  • 学习并熟悉我是需要一定的学习成本的,你需要了解什么是接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等前端工程师不是很熟悉的概念和定义;
  • 短期会增加开发成本,要多写一些类型的定义,不过对于长期维护的项目,用我了就能够减少维护成本;
  • 集成到构建流程需要工作量;
  • 和一些库结合的还不是很完美(其实,不完美也是一种美);

客观地说

本章最后,我想对你说的是:根据公司、项目和团队等各种情况综合判断是否选择使用我,我是很有包容心的。

你可以...

上一篇:Typescript 为什么选择她

下一篇:Typescript 的成长环境

目录:Typescript 小书之入门篇