import { DropKeys } from '@typed/common' import { curry } from '@typed/lambda' import { clone } from './clone' /** * Disassociate a key from an object */ export const dissoc = curry(_dissoc) as { >(key: K, obj: A): DropKeys (key: K): >(obj: A) => DropKeys } function _dissoc>(key: K, obj: A): DropKeys { const cloned = clone(obj) delete cloned[key] return (cloned as any) as DropKeys }