You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
397 B
TypeScript
18 lines
397 B
TypeScript
|
9 months ago
|
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;
|
||
|
|
}
|
||
|
|
|
||
|
|
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;
|
||
|
|
}
|