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

时间:2019-08-22 06:56:14

标签: javascript typescript

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

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

export type B = Omit<A, 'j'> & Omit<A, 'k'>

1 个答案:

答案 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;
// }

play