merge-anything
Version:
Merge objects & other types recursively. A simple & small integration.
22 lines (21 loc) • 1.18 kB
JavaScript
export {};
// import { PrettyPrint } from './PrettyPrint'
// type A1 = { arr: string[]; barr?: { b: number } }
// type A2 = { arr?: number[]; barr?: { b: number } }
// type TestA = PrettyPrint<MergeDeep<A1, A2>>
// type B1 = { a: number; b?: number; d?: number; e?: number; x: string; y?: number; z: string; } // prettier-ignore
// type B2 = { a?: number; c?: number; d?: number; e: number; x: number | undefined; y?: string; z?: number; } // prettier-ignore
// type TestB = PrettyPrint<MergeDeep<B1, B2>>
// type C1 = { info: { time: string; newDate: Date; very: { deep: { prop: boolean } } } }
// type C2 = { info: { date: string; very: { deep: { prop: boolean } } } }
// type TestC = PrettyPrint<MergeDeep<C1, C2>>
// type D1 = { [key in string]?: { cool: boolean } | null }
// type D2 = { [key in string]?: { notCool: boolean } | null }
// type TestD = PrettyPrint<MergeDeep<D1, D2>>
// import { Timestamp } from '../../test/Timestamp'
// type T1 = { date: Timestamp }
// type T2 = { date: Timestamp }
// type TestT = MergeDeep<T1, T2>
// interface I1 { date: Timestamp }
// interface I2 { date: Timestamp }
// type TestI = MergeDeep<I1, I2>