Skip to main content

Object.keys在typescript中的使用

· One min read

需求场景

当在ts中使用Object.keys时会报错。

    Object.keys(Detail).forEach((key) => {
Detail[key] = res.data[key];
});

解决方案

看到很多解决方案,最后发现国外一大佬的解决方案是最好的,通过重新定义Object的ts声明文件解决。

type ObjectKeys<T> =
T extends object ? (keyof T)[] :
T extends number ? [] :
T extends Array<any> | string ? string[] :
never;
interface ObjectConstructor {
keys<T>(o: T): ObjectKeys<T>
}

参考文档

typescript-better-object-keys