TypeScript

初识TypeScript

学习TypeScript记录(一)

Yixuan Lang
2021-10-11
2 min

# 初始 TypeScript

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 的;

# 文章参考

推荐 7 个学习 TypeScript 的宝库,2021 学 TS 看这篇就够了!

TypeScript 入门教程