TypeScript 进阶 类型推断 infer

发布于 2024-11-18 14:43:59 字数 902 浏览 22 评论 0

类型推断 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

懒的傷心

暂无简介

文章
评论
26 人气
更多

推荐作者

15077827184

文章 0 评论 0

遗失的美好

文章 0 评论 0

离不开的别离

文章 0 评论 0

3857621955

文章 0 评论 0

懒猫

文章 0 评论 0

洋洋洒洒

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文