Files
reacord/helpers/pick.ts
MapleLeaf 4fe5dd2cf9 looser pick
works better with object unions
2021-12-29 01:50:52 -06:00

17 lines
402 B
TypeScript

import type { LoosePick, UnknownRecord } from "./types"
// eslint-disable-next-line import/no-unused-modules
export function pick<T, K extends keyof T | PropertyKey>(
object: T,
keys: K[],
): LoosePick<T, K> {
const result: any = {}
for (const key of keys) {
const value = (object as UnknownRecord)[key]
if (value !== undefined) {
result[key] = value
}
}
return result
}