UNPKG

rivo

Version:

🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.

33 lines (30 loc) • 1.01 kB
import type { SimpleMerge } from "./SimpleMerge"; // @ts-ignore - Only used in doc comments import type SimpleMergeFn from "./SimpleMerge"; import type { Args, Fn } from "../HKT"; /** * The flipped version of {@link SimpleMerge}. * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. * * Sig: `(r: object, l: object) => object` * * @example * ```typescript * type A = { a: number; b: string }; * type B = { a: boolean; c: string }; * type R = SimpleMergeR<B, A>; * // ^?: { a: boolean; b: string; c: string } * ``` */ export type SimpleMergeR<R extends object, L extends object> = SimpleMerge<L, R>; /** * [Fn] The flipped version of {@link SimpleMergeFn}. * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. * * Sig: `(r: object, l: object) => object` */ export default interface SimpleMergeRFn extends Fn<[object, object], object> { def: ([r, l]: Args<this>) => SimpleMergeR<typeof r, typeof l>; }