Typescript学习: Partial 与 Required
两个常用的工具
基本理解
optional: 将所有的属性变成可选(没有
Optional
这个工具)required: 将所有的属生变成
Required
字段
原理 - partial
interface Person {
name: string;
age: number;
sex?: string;
}
type PersonOptions = MyPartial<Person>;
// 实现原理
type MyPartial<T> = {
[P in keyof T]?: T[P]
}
原理 - required
注意这个用法
[P in keyof T]-?: T[P]
interface Person {
name: string;
age: number;
sex?: string;
}
type PersonOptions = MyRequired<Person>;
// 实现原理
type MyRequired<T> = {
[P in keyof T]-?: T[P];
};
// 取得 name 的类型
type NameType = Person['name']; // string