技术文摘
typescript的条件类型都有啥
typescript的条件类型都有啥
在TypeScript的类型系统中,条件类型是一项强大的功能,它允许我们根据条件来选择不同的类型。这极大地增强了类型的灵活性和表达力,下面就来详细了解一下都有哪些常见的条件类型。
首先是 T extends U? X : Y 这种基本的条件类型语法。它的含义是:如果类型 T 能够赋值给类型 U,那么结果类型就是 X;否则,结果类型为 Y。例如,number extends string? 'yes' : 'no',由于 number 类型不能赋值给 string 类型,所以这个条件类型的结果是 'no'。
Exclude<T, U> 是用于从类型 T 中排除类型 U 中存在的类型。比如 Exclude<number | string | boolean, string>,其结果就是 number | boolean,它把 T 中与 U 相同的 string 类型排除掉了。
Extract<T, U> 与 Exclude 相反,它用于提取类型 T 中与类型 U 重叠的部分。例如 Extract<number | string | boolean, number | boolean>,结果为 number | boolean,它提取出了 T 中与 U 相同的类型。
NonNullable<T> 用于移除类型 T 中的 null 和 undefined 类型。比如 NonNullable<number | null | undefined>,结果是 number,通过这个条件类型,我们可以很方便地处理可能包含 null 或 undefined 的类型,确保代码在使用这些类型时更加安全。
ReturnType<T> 则是获取函数类型 T 的返回值类型。假设我们有一个函数 function add(a: number, b: number): number { return a + b; },那么 ReturnType<typeof add> 的结果就是 number,这在需要精确获取函数返回值类型时非常有用。
InstanceType<T> 用于获取构造函数类型 T 的实例类型。例如 class Person { name: string; constructor(name: string) { this.name = name; } },InstanceType<typeof Person> 的结果就是 Person 实例的类型,方便我们在处理类和实例相关的类型操作时进行类型推导。
这些条件类型在TypeScript的代码编写中发挥着重要作用,能够帮助开发者更精准地处理类型,提升代码的可靠性和可维护性。
TAGS: typescript条件类型 条件类型分类 常见条件类型 条件类型作用
- 无需懂代码,试试这几款数据爬取工具
- 初学者高效学习编码的三个妙法
- 7 个免费 Python 项目助新手夯实基本功
- 你真的懂 HttpClient 这么久以来的实现原理吗?
- 五分钟轻松掌握 scrapy 爬虫框架
- 基于 Java 构建简易英语学习系统
- 程序员怎样阅读源码
- Tkinter 完善 Python 项目的 GUI 布局
- 基于 DataWorks 构建数据中台的方法
- Python 自制拼图小游戏,轻松应对熊孩子
- 2020 年虚拟现实头戴式装置出货量或达 640 万,2025 年虚拟现实软硬件营收将达 100 亿美元
- Go 运行时内的 Mutex
- 用户退出程序,你的做法处于何种水平?
- 每位程序员都能贡献开源吗?
- 开源十六进制编辑器狂揽 2500 星 登顶 GitHub 热榜