TypeScript|青训营

65 阅读3分钟

TypeScript vs JavaScript

TS是JS的超集,它是在JS的基础上去做的一些类型检测和一些相关的语法补充。

QQ截图20230824223922.png

TypeScript

  • TS带来了类型安全,和Java、C++一样
  • TS包含了一些编译器,TS会支持一些JS的特性
  • TS可以从id意义上更容易理解代码,围绕编码属性整理一些工具来提高开发效率

TS不仅是一门语言,更是生产力工具。

TS基础

基础类型

  • boolean、number、string
  • 枚举enum(TS中特有类型)
  • any、unknown(any的替代类型,只允许被复制,反向复制只能复制给any、unknown类型)、void
  • never(永远不存在值的类型)
  • 数组类型[]
  • 元组类型tuple

函数类型

TS定义函数类型时要定义输入参数类型和输出类型

输出可以自动推断,没有返回值时默认void

接口类型interface

接口是为了定义一个对象类型

对象类型:是对所有键值对的描述

和JS差不多,增加了一些定义

增加了public、private、protected修饰符

类中#标识是一个私有属性,外界无法调用

使用interface来约束类可以用implements关键字来进行接口方面的定义

TS进阶

高阶类型

  • 联合类型|:如果一个类型定义上存在多个基础类型,使用联合类型进行一个取值
  • 交叉类型&:如果在某个类上进行属性扩展,可以使用交叉类型取并集
  • 类型断言:两种用法:通过标识符方式去进行一个属性前置的断言定义;通过as的方式
  • 类型别名:给类型起个别名,使用type,与interface使用方式比较相似

泛型

组件不仅要支持当前的数据类型,还要支持未来的数据类型

泛型的语法是<>中写类型参数,一般用T表示

指定类型的两种方法:

  • 定义要使用的类型
  • TS类型推断,自动推导

操作符:

  • typeof:获取类型
  • keyof:获取所有键
  • in:遍历枚举类型
  • T[K]:索引访问
  • extends:泛型约束

工具类型:

  • Partial<T>:可选
  • Required<T>:必选
  • Readonly<T>:只读

个人总结

在学习过程中,整体认识TypeScript,了解了相关的基础知识:基础类型、对象类型、接口、断言等,还学习了一些高阶知识:类、泛型、泛型的语法、指定类型的方法、相关操作符以及相关工具类型。TS的核心思维是先关注数据结构,再根据数据结构进行页面开发,它是添加了类型系统的JS,适用于任何规模的项目,可以帮助开发者在编写JS代码时提高代码质量和开发效率。TS有很多优势,TS最显著的优势就是类型系统,它提供了严格的类型检查,可以避免类型错误带来的问题。其次,在TS中,每个变量、函数参数和函数返回值都有明确的类型,这使得代码更加健壮、可维护和易于理解。由于TS具有严格的类型检查,因此编辑器可以更好地了解代码的结构,并提供更好的代码提示和自动补全功能。这可以帮助开发者更快速地编写代码,并减少代码错误。由于TS强调类型安全,因此代码更加规范、易于阅读和维护。在团队协作开发时,TS可以减少代码错误、提高代码可读性和可维护性。由于TS提供了严格的类型检查和更好的代码提示,因此它能够更好地支持工程化。在大型项目中,TS可以帮助开发者更快速地进行开发、测试和维护,并且减少出现错误的概率。TS的主要作用在于通过各种方式约束我们的代码。也可以这样理解:TS是一套约束规则。而我们只要掌握了这套约束规则,那么带来的另一个好处就是,我们可以更加容易的读懂别人的代码。