K
に指定したものを除外するtstype A = Omit<{ a: string; b: string }, 'a'>; // {b: string}
tstype Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
K extends keyof any
K extends keyof T
だとなにか問題がある #??tstype Omit<T extends object, K extends keyof T> = {
[key in Exclude<keyof T, K>]: T[key];
};
tstype Omit<T, K extends keyof T> = {
[Key in keyof T as Key extends K ? never : Key]: T[Key];
};