rivo
Version:
🤖 The ultimate library you need for composable type-level programming in TypeScript, powered by HKT.
33 lines (30 loc) • 1.01 kB
TypeScript
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>;
}