UNPKG

react-querybuilder

Version:

React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts

47 lines (41 loc) 1.07 kB
import type { OmitIndexSignature } from "./omit-index-signature.mjs"; import type { PickIndexSignature } from "./pick-index-signature.mjs"; import type { Simplify } from "./simplify.mjs"; type SimpleMerge< Destination, Source > = { [Key in keyof Destination as Key extends keyof Source ? never : Key] : Destination[Key] } & Source; /** Merge two types into a new type. Keys of the second type overrides keys of the first type. @example ``` import type {Merge} from 'type-fest'; interface Foo { [x: string]: unknown; [x: number]: unknown; foo: string; bar: symbol; } type Bar = { [x: number]: number; [x: symbol]: unknown; bar: Date; baz: boolean; }; export type FooBar = Merge<Foo, Bar>; // => { // [x: string]: unknown; // [x: number]: number; // [x: symbol]: unknown; // foo: string; // bar: Date; // baz: boolean; // } ``` @group type-fest */ export type Merge< Destination, Source > = Simplify<SimpleMerge<PickIndexSignature<Destination>, PickIndexSignature<Source>> & SimpleMerge<OmitIndexSignature<Destination>, OmitIndexSignature<Source>>>; export {};