export const Keys: >(obj: T) => (keyof T)[] = obj => { //@ts-ignore return Object.keys(obj) as any }; export function omit, K extends keyof T>(obj: T, fields: K[]): Omit { const clone = { ...obj } if (Array.isArray(fields)) { fields.forEach(key => { delete clone[key] }) } return clone }