打字稿通用如何使typeof对象到数组?
Typescript generic how to make typeof object-to-array?
我有这个功能
export const ObjectToArray = <T>(object: T): { key: any; value: any }[] =>
Object.entries(object).map(o => ({ key: o[0], value: o[1] }));
我想删除 any
部分结果
我什至不知道如何开始。
请任何提示
您可以使用以下方法:
type Entries<T> = {
[P in keyof T]: { key: P; value: T[P] };
}[keyof T];
export const objectToArray = <T>(obj: T): Entries<T>[] =>
Object.entries(obj).map(o => ({ key: o[0] as keyof T, value: o[1] }));
Entries
泛型简单地遍历 T
的键,将每个键映射到您需要的记录,然后索引这些键以创建记录的联合。
在 objectToArray
函数内部需要一个类型断言,因为 Object.entries
不保留有关输入对象的键的信息以避免一些不合理的情况。
我有这个功能
export const ObjectToArray = <T>(object: T): { key: any; value: any }[] =>
Object.entries(object).map(o => ({ key: o[0], value: o[1] }));
我想删除 any
部分结果
我什至不知道如何开始。
请任何提示
您可以使用以下方法:
type Entries<T> = {
[P in keyof T]: { key: P; value: T[P] };
}[keyof T];
export const objectToArray = <T>(obj: T): Entries<T>[] =>
Object.entries(obj).map(o => ({ key: o[0] as keyof T, value: o[1] }));
Entries
泛型简单地遍历 T
的键,将每个键映射到您需要的记录,然后索引这些键以创建记录的联合。
在 objectToArray
函数内部需要一个类型断言,因为 Object.entries
不保留有关输入对象的键的信息以避免一些不合理的情况。