# 初始 TypeScript

之前使用 Vue3 的时候搭配TypeScript
进行开发,一开始感觉十分别扭,各种类型的限制等等,感觉写起来要比 JS 麻烦。但是用了一段时间后,不得不说,哎呀妈呀真香。有一段时间没有使用TS
了,对 TS 的东西也有些遗忘了,并且也只是停留在基本的使用上。该系列文章会记录TS
从浅入深的学习过程。方便后期回顾与梳理。
# 一、什么是 TypeScript?
TypeScript is a superset of JavaScript that compiles to clean JavaScript output
翻译:TypeScript 是拥有类型的 JavaScript 超集,它可以编译成普通、干净、完整的 JavaScript 代码
可以将 TypeScript 理解成 JavaScript 的超集,也就是
加强版的JavaScript
JavaScript所拥有的特性
,TypeScript 全部都是支持的,并且它紧随着 ECMAScript 的标准,所以 ES6、ES7、ES8 等新语法标准,它都是支持的。在语言层面上,不仅仅增加来了
类型的约束
,而且包括了一些语法的扩展
,比如枚举类型(Enum)、元组类型(Tuple)等。并且 TypeScript 最终会编译成 JavaScript 代码,不需要担心的兼容性问题,在编译时也不需要借助 Bable 这样的工具。
# 二、 TypeScript 和 JavaScript 之间的区别
TypeScript | JavaScript |
---|---|
JavaScript 的超集用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页 |
可以在编译期间发现并纠正错误 | 作为一种解释型语言,只能在运行时发现错误 |
强类型,支持静态和动态类型 | 弱类型,没有静态类型选项 |
最终被编译成 JavaScript 代码,使浏览器可以理解 | 可以直接在浏览器中使用 |
支持模块、泛型和接口 | 不支持模块,泛型或接口 |
社区的支持仍在增长,而且还不是很大 | 大量的社区支持以及大量文档和解决问题的支 |
# 三. 为什么使用 TypeScript
使用 TypeScript 的初衷要从 JavaScript 的痛点开始说起,JavaScript 在近几年有很快的发展,使用 JavaScript 的开发人员越来越多,随着 ES 版本的迭代也近一步优化了 JavaScript 所存在的问题。但是有一个问题一直没有得到解决就是——类型检测。
类型所带来的问题: JavaScript 并没对变量的类型做限制和检测,导致在代码书写过程中,如果有一个变量的类型定义有误,可能会变成一个潜在的问题,导致后期的代码因为一个小小的类型错误而导致崩溃。
TypeScript 对类型的检测:TypeScript 在代码的编译阶段就可以发现错误,并提示开发人员进行更正。可以使得我们开发的程序尽早的发现错误的存在。而 JavaScript 对于类型的错误,只能在运行阶段发现。
# 四、众多项目采用 TypeScript
- Angular 源码在很早就使用 TypeScript 来进行了重写,并且开发 Angular 也需要掌握 TypeScript;
- Vue3 源码也采用了 TypeScript 进行重写;
- 目前已经变成最流行的编辑器 VSCode 也是使用 TypeScript 来完成的;
- 在 React 中已经使用的 ant-design 的 UI 库,也大量使用 TypeScript 来编写;
- 目前公司非常流行 Vue3+TypeScript、React+TypeScript 的开发模式;
- 包括小程序开发,也是支持 TypeScript 的;