ChatGPT-Next-Web/app/utils/object.ts

18 lines
397 B
TypeScript
Raw Normal View History

2024-04-07 03:32:57 +00:00
export function omit<T extends object, U extends (keyof T)[]>(
2023-09-25 16:19:21 +00:00
obj: T,
...keys: U
2024-04-07 03:32:57 +00:00
): Omit<T, U[number]> {
const ret: any = { ...obj };
keys.forEach((key) => delete ret[key]);
2023-09-25 16:19:21 +00:00
return ret;
}
2024-04-07 03:32:57 +00:00
export function pick<T extends object, U extends (keyof T)[]>(
2023-09-25 16:19:21 +00:00
obj: T,
...keys: U
2024-04-07 03:32:57 +00:00
): Pick<T, U[number]> {
const ret: any = {};
keys.forEach((key) => (ret[key] = obj[key]));
2023-09-25 16:19:21 +00:00
return ret;
}