技术文摘
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条件类型 条件类型分类 常见条件类型 条件类型作用
- Sublime Text 3开发Vue项目时ESLint插件报错的解决方法
- 怎样依据数组元素的 Value 与另一数组的 Key 创建新数组
- JavaScript里的函数与括号
- 把JS html()方法获取的table简化成基本结构字符串的方法
- CSS 如何创建从上向下渐浅的渐变色
- CSS Flexbox实现宽度不定、间距相同且左对齐布局的方法
- 怎样把动态生成的 HTML 表格插入 iframe 来达成导出 Excel 功能
- JavaScript 正则表达式助力 HTML 表格简化的方法
- 升级后配置参数不显示的解决方法及强制清除浏览器缓存的操作步骤
- Vue 3 项目中特定页面如何实现像素到 rem 的自适应
- 正则表达式怎样匹配长度不超 5 位的数字与点号组合
- Sublime Text 3 中 ESLint 插件配置困难如何解决
- Flexbox 布局实现宽度不定、间距相同且左对齐的方法
- Vue 3 如何仅在特定页面实现 px 转 rem 自适应
- 深入探究 JavaScript 闭包:全方位指南