TypeScript 进阶 类型推断 infer

发布于 2024-11-18 14:43:59 字数 902 浏览 4 评论 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技术交流群

发布评论

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

关于作者

懒的傷心

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

郁金香雨

文章 0 评论 0

浅忆流年

文章 0 评论 0

原来是傀儡

文章 0 评论 0

donghfcn

文章 0 评论 0

mb_rgrUPueh

文章 0 评论 0

一枫情书

文章 0 评论 0

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