export function pick(obj: T, ...keys: K[]): Pick { const ret: any = {}; keys.forEach((key) => { ret[key] = obj[key]; }); return ret; } export function uniq(arr: T[]): T[] { return Array.from(new Set(arr)); } export function uniqBy(arr: T[], fn: (item: T) => any): T[] { const set = new Set(); return arr.filter((item) => { const val = fn(item); if (set.has(val)) { return false; } set.add(val); return true; }); }