export type Unprefix, Pre extends string> = { [K in keyof T as K extends `${Pre}${infer U}` ? U : never]: T[K]; }; export type Prefix, Pre extends string> = { // @ts-expect-error [K in keyof T as `${Pre}${K}`]: T[K]; }; export type RenamePrefix< T extends Record, Old extends string, New extends string, > = Prefix, New>; export type MergeIntersection> = { [K in keyof T]: T[K]; };