TypeScript进阶——高阶类型:
1. 联合类型 |
2. 交叉类型 &
3. 类型断言(就是定义了变量的类型,不需要进行更多的自动推倒,节省性能)
4. 类型别名(type vs interface)
-定义:给类型起个别名
-相同点: 1.都可以定义对象或函数2.都允许继承3. interface可以合并重复声明,type不行。
泛型,我们什么时候需要用到泛型?
软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。这样用户就可以以自己的数据类型来使用组件。
就是说我们需要用一个类型就解决输入输出可关联的问题
泛型基本定义:
基本定义: 1.泛型的语法是<>里面写类型参数,一般用T表示; 2.使用时有两种方法指定类型: 1.定义要使用的类型2.通过TS类型推断,自动推导类型3.泛型的作用是临时占位,之后通过传来的类型进行推导;
泛型基本操作符:
typeof:获取类型
keyof:获取所有键
in:遍历枚举类型
T[K]:索引访问
extends:泛型约束
泛型常用工具类型:
Partial:将类型属性变为可选
Required:将类型属性变为必选
Readonly:将类型属性变为只读
Pick、Record...
TypeScript实战——声明文件:
declare:三方库需要类型声明文件
.d.ts︰声明文件定义
@types:三方库TS类型包
tsconfig.json:定义TS的配置
可以使用泛型约束后端接口类型
在axios接口api中定义好预设的接口有哪些,变量的类型是什么
在请求的时候就必须满足对应的接口要求才可以正常使用