Partial
Partial<T> 把类型 T 的所有属性改成可选属性
interface User {
id: number;
firstName: string;
lastName: string;
}
type PartialUser = Partial<User>
等价于
type PartialUser = {
id?: number;
firstName?: string;
lastName?: string;
}
Required
Required<T> 把类型 T 中的参数全部变成必选项
interface User {
id?: number;
firstName?: string;
lastName?: string;
}
type RequiredUser = Partial<User>
等价于
type RequiredUser = {
id: number;
firstName: string;
lastName: string;
}
Pick
Pick<T, K> 从类型 T 中提取 K 属性,构造新类型。适用于需要限制和缩小类型范围的场景
example
interface User {
id: number;
firstName: string;
lastName: string;
}
type PickUser = Pick<User, "firstName" | "lastName">
等价于
type PickUser = {
firstName: string;
lastName: string;
}
Omit
Omit<T, K> 从类型 T 中移除指定的属性 K,适合需要保留大部分属性的场景。 K 可以是单个属性,也可以是多个属性名组成的联合类型
interface User {
id: number;
firstName: string;
lastName: string;
age: number;
height: number;
weight: number;
sex: string;
}
type OmitUser = Omit<User, "id">
等价于
type OmitUser = {
firstName: string;
lastName: string;
age: number;
height: number;
weight: number;
sex: string;
}
Record
Record<K, T> 创建一个对象类型,键为 K, 值为 T。
interface User {
id: number;
name: string;
}
type RecordUser = ReCord<string, User>
等价于
type RecordUser = {
[key: string]: User
}