主题
内置工具类型
TypeScript 提供了一系列内置工具类型,用于对类型进行转换和操作。这些工具类型简化了常见的类型处理任务。
Partial<T>
Partial<T>
用于构造一个类型,其中的所有属性都是可选的。
ts
type Person = { name: string; age: number };
type PartialPerson = Partial<Person>; // { name?: string; age?: number }
Required<T>
Required<T>
用于构造一个类型,其中的所有属性都是必需的。
ts
type Person = { name: string; age?: number };
type RequiredPerson = Required<Person>; // { name: string; age: number }
Pick\<T, K>
Pick<T, K>
用于从一个类型中选择出一些属性,构造一个新类型。
ts
type Person = { name: string; age: number; gender: string };
type PersonNameAndAge = Pick<Person, "name" | "age">; // { name: string; age: number }
Omit\<T, K>
Omit<T, K>
用于从一个类型中删除一些属性,构造一个新类型。
ts
type Person = { name: string; age: number; gender: string };
type PersonWithoutGender = Omit<Person, "gender">; // { name: string; age: number }
Record\<K, T>
Record<K, T>
用于构造一个对象类型,其中 K
表示对象的键,T
表示每个键对应的值的类型。
ts
type Role = "admin" | "user" | "guest";
type Permissions = Record<Role, boolean>; // { admin: boolean; user: boolean; guest: boolean }
ReturnType<T>
ReturnType<T>
用于获取函数类型 T
的返回值类型。
ts
type MyFunction = () => string;
type MyReturnType = ReturnType<MyFunction>; // string
Parameters<T>
Parameters<T>
用于获取函数类型 T
的参数类型组成的元组类型。
ts
type MyFunction = (x: number, y: string) => void;
type MyParameters = Parameters<MyFunction>; // [number, string]
这些工具类型大大简化了常见的类型转换和操作,使得代码更加简洁和易于维护。通过灵活使用这些内置类型,开发者能够高效地处理类型的变化和转换。