20 lines
474 B
TypeScript
20 lines
474 B
TypeScript
const pick = <T extends Record<string, any>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> => {
|
|
const result = {} as Pick<T, K>;
|
|
for (const key of keys) {
|
|
if (key in obj) {
|
|
result[key] = obj[key];
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
|
|
const omit = <T extends Record<string, any>, K extends string>(obj: T, keys: K[]): Omit<T, K> => {
|
|
const result = { ...obj };
|
|
for (const key of keys) {
|
|
delete result[key];
|
|
}
|
|
return result;
|
|
};
|
|
|
|
export { pick, omit };
|