Typescript篇-高频理解

57 阅读1分钟

1. keyof 获取定义类型的键值,可以理解为获取常量

type Person = {
  name: string;
  age: number;
};

type KeysOfPerson = keyof Person; // KeysOfPerson 的类型为 "name" | "age"
等效于
type KeysOfPerson = "name" | "age"

2. typeof 获取数据的类型,针对的实体数据

const person = {
  name: 'zhangsan',
  age: 18
}

type Person  = typeof person

// Person = {
  name: string;
  age: number;
};

3. ReturnType 获取函数的返回值类型

type Predicate = (x: unknown) => boolean;
type K = ReturnType<Predicate>; // type K = boolean

直接对一个函数名使用 `ReturnType` ,我们会看到这样一个报错
function f() { return { x: 10, y: 3 }; } 
type P = ReturnType<f>; // 'f' refers to a value, but is being used as a type here.

正确做法
function f() { return { x: 10, y: 3 }; } 
type P = ReturnType<typeof f>; // type P = { // x: number; // y: number; // };