Typescript
常用内置类型
Partial<T> —— 把所有属性变成可选
type User = {
name: string;
age: number;
};
type PartialUser = Partial<User>;
// 等价于: { name?: string; age?: number }Required<T> —— 把所有属性变成必填
type User = {
name?: string;
age?: number;
};
type FullUser = Required<User>;
// { name: string; age: number }Readonly<T> —— 把所有属性变成只读
type User = {
name: string;
};
const u: Readonly<User> = { name: 'Tom' };
u.name = 'Jerry'; // ❌ 报错,name 是只读的Pick<T, K> —— 从 T 中挑选某些属性组成新类型
type User = {
name: string;
age: number;
email: string;
};
type BasicInfo = Pick<User, 'name' | 'email'>;
// { name: string; email: string }Omit<T, K> —— 从 T 中移除某些属性组成新类型
type User = {
name: string;
age: number;
email: string;
};
type NoEmail = Omit<User, 'email'>;
// { name: string; age: number }Record<K, T> —— 构造一个键值对类型
type Roles = 'admin' | 'user' | 'guest';
type RolePermissions = Record<Roles, boolean>;
// 等价于:{ admin: boolean; user: boolean; guest: boolean }Exclude<T, U> —— 从 T 中排除 U 的类型
type T = Exclude<'a' | 'b' | 'c', 'a'>;
// 'b' | 'c'Extract<T, U> —— 从 T 中提取 U 的类型
type T = Extract<'a' | 'b' | 'c', 'a' | 'b'>;
// 'a' | 'b'NonNullable<T> —— 移除 null 和 undefined
type T = NonNullable<string | null | undefined>;
// stringReturnType<T> —— 获取函数返回值类型
function getUser() {
return { name: 'Tom', age: 25 };
}
type User = ReturnType<typeof getUser>;
// { name: string; age: number }