这节课将学习以下内容:
TS基础
interface
类
高级进阶
泛型
TS声明文件
为什么要使用ts?
ts是js的超类,用于解决大型项目的代码复杂性,是一种强类型,支持静态和动态类型,可以在编译期间发现并纠正错误。并且不能改变变量的数据类型。
gethub上TS的学习资源:github.com/dzharii/awe…
TS到JS在线演练工具:www.typescriptlang.org/zh/play
一.TS基础
1.boolean、number、string
2.undefined、null
3.any、unknown、void
4.never
5.数组类型口
6.元组类型tuple
二.interface
定义∶接口是为了定义对象类型
特点:
-可选属性:?
-只读属性:readonly
-可以描述函数类型
-可以描述自定义属性
总结:接口非常灵活duck typing
三.类
定义:写法和JS差不多,增加了一些定义
特点∶
-增加了public、private、protected修饰符
-抽象类:
-只能被继承,不能被实例化
-作为基类,抽象方法必须被子类实现
- interface约束类,使用implements关键字
四.高级进阶
1.联合类型Ⅰ
2.交叉类型&
3.类型断言
4.类型别名(type vs interface)
-定义∶给类型起个别名
-相同点: 1.都可以定义对象或函数 2.都允许继承
-差异点︰
interface是TS用来定义对象,type是用来定义别名方便使用;
2.type可以定义基本类型,interface不行;
interface可以合并重复声明,type不行;
五.泛型
泛型要考虑到可重用性的问题,它不仅支持当前的数据类型,也要支持未来的数据类型.
基本定义∶
1.泛型的语法是◇里面写类型参数,一般用T表示;
2.使用时有两种方法指定类型:
1.定义要使用的类型
2.通过TS类型推断,自动推导类型
3.泛型的作用是临时占位,之后通过传来的类型进行推导;
泛型工具类型-基础操作符
typeof:获取类型
keyof:获取所有键
in:遍历枚举类型
T[K]: 索引访问
extends: 泛型约束
六.TS声明文件
declare:三方库需要类型声明文件
.d.ts:声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置