import { pick } from "./pick"; import { typedInclude } from "./typedInclude"; /** * Return copy of object, omitting blacklisted array of props */ export function omit, K extends keyof T>( o: T, props: K[] | K ): Pick> { const propsArr = Array.isArray(props) ? props : [props]; const letsKeep = (Object.keys(o) as (keyof T)[]).filter((prop) => !typedInclude(propsArr, prop)); return pick(o, letsKeep); }