为何这样 可以排除 U 里的类型 MyExclude<'1' | '2', '2'> 可以正常 返回 '1'
type MyExclude<T, U> = T extends U ? never : T;
为何这样就不生效了呢
type ObjectExclude<T, K extends keyof T> = T[K] extends Object ? K : never;
interface s {
a: {};
d: {};
}
// ObjectExclude<s> 可以正常返回 a | d
interface s {
a: {};
d: {};
f: string;
}
// ObjectExclude<s> 为何这样就返回了 never 呢?
这样可以解决 但是不清楚 为啥 加了 K extends any 就可以 不太理解 extends