18 lines
397 B
TypeScript
18 lines
397 B
TypeScript
export function pick<T extends object, U extends (keyof T)[]>(
|
|
obj: T,
|
|
...keys: U
|
|
): Pick<T, U[number]> {
|
|
const ret: any = {};
|
|
keys.forEach((key) => (ret[key] = obj[key]));
|
|
return ret;
|
|
}
|
|
|
|
export function omit<T extends object, U extends (keyof T)[]>(
|
|
obj: T,
|
|
...keys: U
|
|
): Omit<T, U[number]> {
|
|
const ret: any = { ...obj };
|
|
keys.forEach((key) => delete ret[key]);
|
|
return ret;
|
|
}
|