key-path-mirror
Version:
Similar to keymirror but supports nested objects, built with TypeScript
14 lines (13 loc) • 596 B
TypeScript
declare type Obj = {
[key: string]: any;
};
declare type Prefix = string | undefined;
declare type RecurSetObjValTypeAsStr<O extends Obj> = {
[K in keyof O]: O[K] extends Obj ? RecurSetObjValTypeAsStr<O[K]> : string;
};
declare type RetType<O extends Obj, P extends Prefix> = {
[K in keyof O]: O[K] extends Obj ? RecurSetObjValTypeAsStr<O[K]> : P extends undefined ? K : string;
};
export declare function keyPathMirror<T extends Obj>(obj: T): RetType<T, undefined>;
export declare function keyPathMirror<T extends Obj, P extends string>(obj: T, prefix: P): RetType<T, P>;
export {};