高级方法
Record<[ObjectKey], [ObjectValue]>
练习题地址: typescript-exercises.github.io/
- 类型定义
- Partial
- Omit
- 泛型使用
- 类型组合
第 4 题
interface User {
type: 'user';
name: string;
age: number;
occupation: string;
}
interface Admin {
type: 'admin';
name: string;
age: number;
role: string;
}
export type Person = User | Admin;
报错: occupation不是Admin里面的类型(Person 类型中 定义可以为 User或者Admin)
occupation只存在User类型中 Admin类型中没有
person is User 声明现在person已经是User类型
第 5 题
interface User {
type: 'user';
name: string;
age: number;
occupation: string;
}
interface Admin {
type: 'admin';
name: string;
age: number;
role: string;
}
export type Person = User | Admin;
报错:User类型 缺少属性type、name、occupation
Partial接口将将类型的所有属性设置为可选的类型
第 6 题
Omit 类型让我们可以从另一个对象类型中剔除某些属性,并创建一个新的对象类型
函数重载(重复声明更具不同的入参类型进入不同的函数块)
第 7 题
interface User {
type: 'user';
name: string;
age: number;
occupation: string;
}
interface Admin {
type: 'admin';
name: string;
age: number;
role: string;
}
const admins: Admin[] = [
...
];
const users: User[] = [
...
];
泛型 接收类型使用
第 8 题
类型组合