Record 工具类型用于创建一个由指定键和值类型构成的对象类型,它的定义如下:

type Record<K extends keyof any, T> = {
  [P in K]: T;
};

使用示例:

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

type PersonRecord = Record<'person1' | 'person2', Person>;

const people: PersonRecord = {
  person1: {
    name: 'Alice',
    age: 25,
  },
  person2: {
    name: 'Bob',
    age: 30,
  },
};

ReturnType 工具类型用于获取函数的返回值类型,它的定义如下:

type ReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer R ? R : any;

其中,infer R 用于推断函数的返回类型。

使用示例:

function add(a: number, b: number): number {
  return a + b;
}

type AddReturnType = ReturnType<typeof add>; // number
``
实现 ts 中 RecordReturnType 工具类型

原文地址: https://www.cveoy.top/t/topic/d14V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录