/** * Ensure that the given type is a type mapping * * @since 1.0.0 * @see Mapping */ export type AssertMapping = M extends Mapping ? M : never; /** * Mapping type with no key * * @since 2.4.0 */ export type EmptyMapping = Record; /** * Mapping type * * @since 1.0.0 */ export type Mapping = Record; /** * Extract keys from a type mapping * * @since 1.0.0 */ export type MappingKey = Extract; /** * Overrides mapping B with values from mapping O * * @since 2.4.0 */ export type OverrideMapping = { [K in MappingKey | MappingKey]: K extends MappingKey ? O[K] : B[K]; }; /** * Prepends the given key part to all type mapping's keys * * @since 1.0.0 */ export type PrependMapping

= { [K in MappingKey as `${P}.${K}`]: M[K]; };