在以下类型定义中,我两次使用Omit
从B
定义中删除两个属性。
我想知道是否可以只使用一个Omit
,但一次可以删除两个或多个属性。
export type A = Readonly<{
x: number;
y: number;
j: string;
k: string;
}>;
export type B = Omit<A, 'j'> & Omit<A, 'k'>
答案 0 :(得分:4)
您只需要使用联合作为第二类型参数,即可从第一类型参数中删除联合中的所有成分:
export type A = Readonly<{
x: number;
y: number;
j: string;
k: string;
}>;
export type B = Omit<A, 'j' | 'k'>
// Same as
// type B = {
// readonly x: number;
// readonly y: number;
// }