在以下类型定义中,我两次使用Omit
从B
定义中删除了两个属性。
我想知道是否可以只使用一个Omit
,但一次可以删除两个或多个属性。
export type A = Readonly<{
x: number;
y: number;
j: string;
k: string;
}>;
export type B = Omit<A, 'j'> & Omit<A, 'k'>
最佳答案
您只需要将并集用作第二个类型参数,即可从第一个类型参数中删除并集中的所有组成部分:
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;
// }
play