深入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类型/高级用法及实战优缺点