type Foo = {
a: string;
b: number;
};
type Bar = {
a: string;
c: boolean;
};
type Diff<T,Y> = {
[K in (keyof T | keyof Y) as K extends (keyof T & keyof Y) ?never:K]:K extends keyof T ? T[K]:K extends keyof Y ? Y[K]:never
}
type Result1 = Diff<Foo, Bar>; // { b: number, c: boolean }
type Result2 = Diff<Bar, Foo>; // { b: number, c: boolean }
typescript-剔除两个类型的公共属性
猜你喜欢
转载自blog.csdn.net/weixin_56356934/article/details/140654964
今日推荐
周排行