如何使用 Omit<> 以简洁的方式省略多个属性

Rad*_*dex 10 javascript typescript

在以下类型定义中,我使用Omit两次从B定义中删除两个属性。我想知道是否可以Omit在一次拍摄中仅使用一个但删除两个或多个属性。

export type A = Readonly<{
  x: number;
  y: number;
  j: string;
  k: string;
}>;

export type B = Omit<A, 'j'> & Omit<A, 'k'>
Run Code Online (Sandbox Code Playgroud)

Tit*_*mir 22

您只需要使用联合作为第二个类型参数来从第一个类型参数中删除联合中的所有成分:

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;
// }
Run Code Online (Sandbox Code Playgroud)