1. keyof 获取定义类型的键值,可以理解为获取常量
type Person = {
name: string;
age: number;
};
type KeysOfPerson = keyof Person;
等效于
type KeysOfPerson = "name" | "age"
2. typeof 获取数据的类型,针对的实体数据
const person = {
name: 'zhangsan',
age: 18
}
type Person = typeof person
name: string;
age: number;
};
3. ReturnType 获取函数的返回值类型
type Predicate = (x: unknown) => boolean;
type K = ReturnType<Predicate>;
直接对一个函数名使用 `ReturnType` ,我们会看到这样一个报错
function f() { return { x: 10, y: 3 }; }
type P = ReturnType<f>;
正确做法
function f() { return { x: 10, y: 3 }; }
type P = ReturnType<typeof f>;