export type ObjectLike = { [k: string]: T[keyof T]; }; /** * Remove "readonly" from all properties */ export type AsWriteable = { -readonly [P in keyof T]: T[P]; }; /** * Remove "readonly" from all properties (and Partial) */ export type Writeable = { -readonly [P in keyof T]: T[keyof T]; }; /** * Remove "readonly" from all properties and make them optional */ export type AsOptionable = { -readonly [P in keyof T]?: T[P]; }; /** * Remove "readonly" from all properties and make them optional (and Partial) */ export type Optionable = { -readonly [P in keyof T]?: T[keyof T]; }; export type MappedKeys = { -readonly [P in keyof T]: R; };