day5——TypeScript | 青训营

49 阅读2分钟

TS——为什么?

JS超集,在JS基础上增加类型等 提高了生产力 image.png

  1. 类型安全
  2. 下一代JS特性
  3. 完善的工具链

TS基础

基础类型

  1. boolean、number、string
  2. 枚举enum

可以用来进行类型定义

  1. any、unknown、void
  2. never

永远不会有值的常量

  1. 数组类型
  2. 元组类型tuple

特殊的数组类型

函数类型

有函数重载概念

接口类型

特点: 可选属性、只读属性、可以描述函数类型、可以描述自定义属性

增加了public、protected、private修饰符

有抽象类:只能继承、不能实例化;

作为基类、抽象方法必须被子类实现

TS进阶

高级类型

  1. 联合类型 |
  2. 交叉类型 &
  3. 类型断言,告诉编译器某实例的具体类型,通过as
  4. 类型别名:给类型起个别名

泛型

解决支持多种数据类型的组件的封装 占位

操作符

typeof:获取类型 keyof:获取所有键

常用工具类型

Partial:类型属性为可选

Required:类型属性必选

Readonly:只读

Pick、Record...

实战&工程

声明文件

declare:三方库需要类型声明文件

.d.ts:声明文件定义

@types:三方库TS类型包

tsconfig.json:定义TS的配置

实战

通过ts中新特性的使用,可以对后端的接口进行很好的约束

总结

今天跟着青训营的课程视频大概了解了TypeScript总体的特点、新特性及它的优点所在。通过课程了解,发现TS也太太太像Java了吧,JavaScript和Java的综合体。泛型、interface的这些特性的加入。使TypeScript语言变成了一个面向对象的编程语言(个人理解),它的兴起也说明了前端的工程化趋势。

不过个人目前应该打好自己的学习基础,再在这基础上对TypeScript进行更深入的学习,更上一层楼。