import { curry } from '@typed/lambda' /** * Check if an object has a given property. */ export const hasOwnProperty = curry( ( key: A, obj: B, ): obj is B & { readonly [K in A]: unknown } => obj && Object.prototype.hasOwnProperty.call(obj, key), ) as { (key: A, obj: B): obj is B & { readonly [K in A]: unknown } (key: A): ( obj: B, ) => obj is B & { readonly [K in A]: unknown } }