typescript的条件类型都有啥

2025-01-09 18:23:48   小编

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 中的 nullundefined 类型。比如 NonNullable<number | null | undefined>,结果是 number,通过这个条件类型,我们可以很方便地处理可能包含 nullundefined 的类型,确保代码在使用这些类型时更加安全。

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条件类型 条件类型分类 常见条件类型 条件类型作用

欢迎使用万千站长工具!

Welcome to www.zzTool.com