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 } // Readonly is already defined in lib.es5.d.ts //export type Readonly = { readonly [P in keyof T]: T[P] } // Required is already defined in lib.es5.d.ts //export type NonOptional = { [P in keyof T]-?: T[P] }