深入浅出 TypeScript | 青训营笔记

46 阅读2分钟

01 为什么要学习TS

image.png

  • ts是js的超集
  • ts强类型,可以在编译期间发现并纠正错误,支持静态代码检测,支持后端语言的相关特性
  • ts可以编译为js运行

image.png

image.png

02 TS基础

image.png

  • number包括:整数、浮点数、复数
  • 枚举enum:有映射也有反向映射,从成员名到成员值,也从成员值到成员名
  • 枚举:常量和异构的枚举
  • any:为了效率
  • unknown:any的一个替代类型,any赋值或者反向赋值都可以不会报错,unknown值运行被赋值
  • never:永远不存在值的类型
  • 元组是数组的特殊形式

image.png

image.png

  • 函数重载:名称相同但是参数不同,可以通过重载支持多种类型

image.png

  • 接口:是为了定义对象类型
  • ts类型对比

image.png

  • 抽象类只能被继承,不能被实例化
  • #标识为私有属性

image.png

03 TS进阶

image.png

  • 同名类型取交集
  • 同名的非基础类型的合并会进行相关元素的组合关系

image.png

  • 断言告诉实例具体类型
  • 断言两个用法:标识符属性前置断言定义、as的方式
  • 断言又分为非空断言和确定赋值的断言

image.png

  • type进行类型别名
  • 组合和交叉类型使用type
  • 类的类型定义使用interface

高级类型分为涉及到泛型的和不涉及到泛型的

image.png

泛型要考虑到可重用性

image.png

  • 通过泛型解决了输入输出可关联的问题

image.png

  • T的作用就是临时占位的作用
  • 通过推导得到定义
  • 泛型的核心点:引入了一个临时占位的变量,之后对传来的类型进行推导来实现完整的类型定义的能力

image.png

image.png

image.png

04 实战&工程向

image.png

image.png

image.png