深入ts高级用法

Posted lin_fightin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入ts高级用法相关的知识,希望对你有一定的参考价值。

ts高级使用

函数定义

ts是支持函数定义来定义类型的,ts的函数定义一般被称为泛型 如:
在这里插入图片描述
使用:
在这里插入图片描述
相当于
在这里插入图片描述
换成函数的写法复用性强,扩展性高。
还可以对入参T进行类型约束
在这里插入图片描述
使用extends可以对入参T进行约束。
默认值
在这里插入图片描述
但是遗憾的一点都是,不支持剩余参数。

条件判断

ts定义类型的时候是支持条件判断的,在官方文档被称为条件类型。使用extends关键字
在这里插入图片描述
如果传入的t是number类型就变为string类型,否则就是布尔类型。

类型系统中的数组

ts联合类型

既然是数组,肯定要用到遍历,而ts遍历也是使用in关键字
在这里插入图片描述

MappedType规定了属性只能是vue和react,而值是string
通过in可以容易遍历联合类型,但有时候具体使用的时候我们需要让其自动推导啥的,比如
在这里插入图片描述
我们知道item是对象a属性的一个,但是因为其是string类型,而a上没有string的属性,在这里插入图片描述
所以这时候我们需要它动态推导出item的类型,就得使用keyof关键字
在这里插入图片描述
把item定义为是MappedType类型中的一种。
在这里插入图片描述
如图,keyof student就相当于Object.keys拿到对象属性中的其中一个。
在这里插入图片描述
对于元祖,我们也可以使用
在这里插入图片描述
因为元祖的属性是number类型,取出元祖的number也就是取出其所有值之一。

ts作用域

在ts中,支持全局作用域,也就是说,可以在没有导入的前提下,在任意文件任意位置获取到他

以上是关于深入ts高级用法的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript学习笔记——TS类型/高级用法及实战优缺点

TypeScript学习笔记——TS类型/高级用法及实战优缺点

阿里前端大佬TypeScript学习笔记——TS类型/高级用法及实战优缺点

Typescript - - 高级用法

Typescript - - 高级用法

Fiddler 高级用法:Fiddler Script 与 HTTP 断点调试