Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const pickFunc = <T extends {}, K extends keyof T>(
- obj: T,
- predicate: (k: string) => boolean
- ): Pick<T, K> =>
- Object
- .keys(obj)
- .filter(predicate)
- .reduce((filteredObj: Pick<T, K>, key) => ({
- ...filteredObj,
- [key]: obj[key as keyof T]
- }), {} as Pick<T, K>)
- // filters an object based on an array of keys
- const pick = <T extends {}, K extends keyof T>(obj: T, keys: Array<K>): Pick<T, K> =>
- pickFunc(
- obj,
- k => keys.includes(k as K)
- )
- const omit = <T extends {}, K extends keyof T>(obj: T, keys: Array<K>): Pick<T, K> =>
- pickFunc(
- obj,
- k => !keys.includes(k as K)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement