[TypeScript 入门|青训营笔记]

57 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript代码。其支持任意浏览器,任意环境,任意系统并且是开源的。目前仍还在积极的开发完善之中,不断地会有新的特性加入进来。

JavaScript 与 TypeScript

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。

TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

这两个语言类型都是弱类型语言,而TS 主要面对静态类型,如Python,java等先编译后执行;JS面对动态类型,执行阶段才进行类型匹配。

所以总的来说,两者差异:编译是在执行时还是在执行前的区别。

静态类型的特点:

  • 可读性强,寄语语法解析TSDCC,IDE增强
  • 可维护性强,在编译阶段暴露大部分错误
  • 多人合作的大型项目中,可以获得更好的稳定性和开发效率

因为TS是 JS 的超集,所以它包含与兼容所有JS特性,支持共存,渐进式引入与升级,如:

  1. .js 文件可以直接重命名为 .ts ,即使不显式的定义类型,也能够自动做出类型推论******
  2. 可以定义从简单到复杂的几乎一切类型
  3. 即便TS 编译报错,也可以生成 JS文件
  4. 它也可兼容第三方库,即使第三方库不是用 TS 写的,也可以编写单独的类型文件供 TS读取

而有利总有弊,我认为 TS 的弊端在于:

  1. 首先就要有一定的学习基础,需要理解接口、泛型、类、枚举/联合/交叉类型等我们不是很熟悉的概念
  2. 开发成本会比预期较高,毕竟要多写一些类型的定义,有一好处是,可以利用可维护性强的特点,减少后期的项目维护费用,减少非必要的成本
  3. 工作量会比较大,从集成到构建流程,工作比较繁琐吧
  4. 所使用的库可能和一些库结合的不是很理想

image.png

image.png