本文作为索引,仅记录常用内置工具类型
1.Required<T> 转为必选属性
2.Partial<T> 转为可选属性
3.Readonly<T> 转为只读属性
4.Recods<K, T> 标识 {K: T} 对象
5.Pick<T, K> 从类型T中,仅检出 K 属性,返回新的类型
6.Exclude<T, K> 从类型T中,排除 K 属性,返回新的类型
7.Omit<T, K> 从类型T中,排除 K 属性,返回新的类型
其他:Pick<T, K>, Exclude<T, K>, Omit<T, K>小谈
凭个人喜好,这3个方法,都可以从类型中,摘取一部分想要的属性
// 定义一个 Person
interface Person {
name: string;
age: number;
address: string;
}
// 新的属性,仅需要 name, age
type NameAndAge = Pick<Person, 'name' | 'age'>;
type PersonWithoutAddress = Omit<Person, 'address'>;
type PersonWithoutAddress = Exclude<Person, 'address'>;
// NameAndAge 的类型为:
// {
// name: string;
// age: number;
// }
// PersonWithoutAddress 的类型为:
// {
// name: string;
// age: number;
// }
// PersonWithoutAddressOrAge 的类型为:
// {
// name: string;
// age: number;
// }
keyof 返回某个属性的所有键
valueof 返回某个属性的所有值的类型
这里需要注意的是,与 keyof 不同,返回的是值的类型