需求场景
当在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>
}