```ts function f<T extends { a, b }>(x: T) { let { a, b, ...rest } = x; } ``` Today, we type `rest` as `Pick<T, Exclude<keyof T, "a" | "b">>`. We should try to type this as `Omit<T, "a" | "b">` if `Omit` is defined.