reakit-utils
Version:
Reakit utils
25 lines (22 loc) • 558 B
text/typescript
/**
* Omits specific keys from an object.
*
* @example
* import { omit } from "reakit-utils";
*
* omit({ a: "a", b: "b" }, ["a"]); // { b: "b" }
*/
export function omit<T extends Record<string, any>, K extends keyof T>(
object: T,
paths: ReadonlyArray<K> | K[]
): Omit<T, K> {
const keys = Object.keys(object);
const result = {} as Omit<T, K>;
for (let i = 0; i < keys.length; i += 1) {
const key = keys[i];
if (paths.indexOf(key as K) === -1) {
result[key as Exclude<keyof T, K>] = object[key];
}
}
return result;
}