TS——为什么?
JS超集,在JS基础上增加类型等
提高了生产力
- 类型安全
- 下一代JS特性
- 完善的工具链
TS基础
基础类型
- boolean、number、string
- 枚举enum
可以用来进行类型定义
- any、unknown、void
- never
永远不会有值的常量
- 数组类型
- 元组类型tuple
特殊的数组类型
函数类型
有函数重载概念
接口类型
特点: 可选属性、只读属性、可以描述函数类型、可以描述自定义属性
类
增加了public、protected、private修饰符
有抽象类:只能继承、不能实例化;
作为基类、抽象方法必须被子类实现
TS进阶
高级类型
- 联合类型 |
- 交叉类型 &
- 类型断言,告诉编译器某实例的具体类型,通过as
- 类型别名:给类型起个别名
泛型
解决支持多种数据类型的组件的封装 占位
操作符
typeof:获取类型 keyof:获取所有键
常用工具类型
Partial:类型属性为可选
Required:类型属性必选
Readonly:只读
Pick、Record...
实战&工程
声明文件
declare:三方库需要类型声明文件
.d.ts:声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置
实战
通过ts中新特性的使用,可以对后端的接口进行很好的约束
总结
今天跟着青训营的课程视频大概了解了TypeScript总体的特点、新特性及它的优点所在。通过课程了解,发现TS也太太太像Java了吧,JavaScript和Java的综合体。泛型、interface的这些特性的加入。使TypeScript语言变成了一个面向对象的编程语言(个人理解),它的兴起也说明了前端的工程化趋势。
不过个人目前应该打好自己的学习基础,再在这基础上对TypeScript进行更深入的学习,更上一层楼。