mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 20:19:34 +01:00
26 lines
660 B
TypeScript
26 lines
660 B
TypeScript
export function pick<Data extends object, Keys extends keyof Data>(data: Data, keys: Keys[]): Pick<Data, Keys> {
|
|
const result = {} as Pick<Data, Keys>
|
|
|
|
for (const key of keys) {
|
|
result[key] = data[key]
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
export function omit<Data extends object, Keys extends keyof Data>(data: Data, keys: Keys[]): Omit<Data, Keys> {
|
|
const result = { ...data }
|
|
|
|
for (const key of keys) {
|
|
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
delete result[key]
|
|
}
|
|
|
|
return result as Omit<Data, Keys>
|
|
}
|
|
|
|
export function looseToNumber(val: any): any {
|
|
const n = Number.parseFloat(val)
|
|
return Number.isNaN(n) ? val : n
|
|
}
|