Write a generic omit(obj, keys) that returns a shallow copy of obj with the given keys removed.
Signature: omit<T extends object, K extends keyof T>(obj: T, keys: K[]) => Omit<T, K>
The opposite of pick: start from a copy, then delete each key. The return type is the built-in Omit<T, K>.
Spread obj into a new object so the original isn't mutated.
Delete each key from the copy.
Cast the result to Omit<T, K>.
Test natijalarini ko'rish uchun kodingizni ishga tushiring.