object.ts 397 B

1234567891011121314151617
  1. export function pick<T extends object, U extends (keyof T)[]>(
  2. obj: T,
  3. ...keys: U
  4. ): Pick<T, U[number]> {
  5. const ret: any = {};
  6. keys.forEach((key) => (ret[key] = obj[key]));
  7. return ret;
  8. }
  9. export function omit<T extends object, U extends (keyof T)[]>(
  10. obj: T,
  11. ...keys: U
  12. ): Omit<T, U[number]> {
  13. const ret: any = { ...obj };
  14. keys.forEach((key) => delete ret[key]);
  15. return ret;
  16. }