TypeScript 进阶 类型推断 infer
类型推断 infer
infer
是 TypeScript 新增的关键字,充当占位符
示例
定义一个类型,如果是数组类型,就返回数组元素的类型。否则传入什么类型,就返回什么类型。
type Infer<T> = T extends Array<any> ? T[number] : T;
type A = Infer<(boolean | string)[]>
// >> type A = string | boolean
type B = Infer<null>
// >> type B = null
使用 infer
修改
type Infer<T> = T extends Array<infer U> ? U : T
type A = Infer<(string | symbol)[]>
// >> type A = string | symbol
tuple
转换 union
联合类型
type TupleToUni<T> = T extends Array<infer E> ? E : never
type TTuple = [string, number];
type ToUnion = TupleToUni<TTuple>; // string | number
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论