技术文摘
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条件类型 条件类型分类 常见条件类型 条件类型作用
- 美国 4 大科技巨头被紧盯
- Python 中那些超乎想象的代码功能
- C++中怎样调用 C 接口
- JavaScript 中字符串组合的 4 种方式
- 开发人员必备的 7 种基本非技术技能:别只懂敲代码
- 5 款全平台免费的超好用笔记软件
- 五大代码异味 务必提高警惕
- Python 编程语言的核心要素有哪些?
- 停止在 JavaScript 中使用类,助您成为更优开发人员
- Python 常用的 10 大数据结构(上篇)盘点
- Python 十大常用数据结构盘点(下篇)
- Python 中“...”对象缘何奇怪?
- JavaScript 中 map() 与 forEach() 的差异在哪?
- JavaScript 中实现休眠或等待功能及 sleep 函数的方法
- 因不懂性能测试 面试被拒