实现 ts 中 RecordReturnType 工具类型
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
``
原文地址: https://www.cveoy.top/t/topic/d14V 著作权归作者所有。请勿转载和采集!