import { Exclude } from './Exclude'; import { Match } from '../Any/_Internal'; import { PatchFlat } from './Patch'; /** * Get an [[Object]] that is the difference between `O` & `O1` * (`O`'s differences have priority over `O1`'s if fields overlap) * (If `match = 'default'`, no type checks are done) * @param O to check differences with * @param O1 to check differences against * @param match (?=`'default'`) to change precision * @returns [[Object]] * @example * ```ts * import {O} from 'ts-toolbelt' * * type Person0 = { * name: string * age: string * } * * type Person1 = { * name: string * age: number | string * nick: string * } * * type test0 = O.Diff // {nick: string} * type test1 = O.Diff'> // {nick: string; age: string | number} * type test2 = O.Diff // {nick: string; age: string} * type test3 = O.Diff // {nick: string; age: string} * ``` */ export declare type Diff = PatchFlat, Exclude>;