[ TypeScript连载-第一期 ] 什么是TypeScript?

345 阅读3分钟

海阔凭鱼跃,天高任鸟飞。Hey 你好!我是秦爱德。

写作初心

说起web前端,在近几年变化是巨大的。或许我们已经告别了那个刀耕火种来到了更幸福的时期,不过同时也面临着更多的技术挑战。现目前很多公司已经全面铺开使用ts,vue3.0将至,到时候也会全面拥抱ts,学好ts可谓是迫在眉睫。这里,我希望通过分享自己的ts学习之旅与大家沟通交流,共同进步!

什么是TypeScript?

通过学习ts之后,它给我最大感受就是强烈的 “安全感”

通过维基百科搜索对ts有了一个基本了解:

  • TypeScript是一种开源的编程语言,该语言项目由微软进行维护和管理。TypeScript不仅包含JavaScript的语法,而且还提供了静态类型检查以及使用看起来像基于类的面向对象编程语法操作 Prototype。C#的首席架构师以及Delphi和Turbo Pascal的创始人安德斯·海尔斯伯格参与了TypeScript的开发。
  • TypeScript是为开发大型应用而设计的,并且TypeScript可转译成JavaScript。由于TypeScript是JavaScript的严格超集,任何现有的JavaScript程序都是合法的TypeScript程序。
  • TypeScript支持为现存JavaScript库添加类型信息的定义文件,方便其他程序像使用静态类型的值一样使用现有库中的值。目前有第三方提供常用库如jQuery、MongoDB、Node.js和D3.js的定义文件。
  • 经过微软两年的内部开发后,TypeScript于2012年10月首次发布0.8版本。

这里引入官网对它的描述:

TypeScript是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 编译工具可以运行在任何服务器和任何系统上。

TypeScript 由 Microsoft 开发,并将代码开源于GitHub

为什么选择TypeScript?

TypeScript 增加了代码的可读性和可维护性

  • 拥有强大的类型系统,强类型实际上就是最好的文档,大部分的函数看看类型的定义就可以知道如何使用了
  • 可在编译阶段发现错误,避免了代码中出现低级bug
  • 解决了 IDE/编辑器无法智能提示的痛点。提升了开发效率,编写代码时可非常愉快的 “一把梭”

TypeScript 具有强大的包容性

  • 即使不显式的定义类型,也能够自动做出类型推论
  • 即使 TypeScript 编译报错,也可以生成 JavaScript 文件
  • 兼容第三方库,即使第三方库不是用 TypeScript 写的,也可以编写单独的类型文件供 TypeScript 读取
  • 拥有非常活跃的社区生态,日常开发中遇到的大部分问题都可以找到解决方案
  • 很大程度上对es6以及ESNex一些最新特性的支持

TypeScript 的缺点

  • 有一定的学习成本,需要理解接口(Interfaces)、泛型(Generics)、类(Classes)、枚举类型(Enums)等前端工程师可能不是很熟悉的概念
  • 类型的定义可能会让写习惯了弱类型方式的同学稍感不适,短期开发当中会增加一定的工作量
  • 可能和一些库结合的不是很完美

TypeScript 的展望

从Google趋势、npm下载量趋势上可以到看,TypeScript社区发展很快。从开发效率可维护性线上运行时质量等各个角度上来看,ts都是比较优质的技术走向。并且聪明的我们已经将ts玩出了各种花样,伴随着VS Code + TypeScript、react + TypeScript等各类组合,ts越来越受欢迎,同时也受到各大国际大厂的支持和使用。Vue3.0 也将使用 ts 重写,重写后的 Vue3.0 将更好的支持 ts,由此看来ts将会更加普及,也会成为前端开发者的一大优势。