TypeScript,我不能省略<someUnion,oneInterface>。为什么?

时间:2019-08-31 07:42:51

标签: typescript

请参见以下最小示例:

interface A {
  a: number;
}
interface B {
  b: number;
}
interface C {
  c: number;
}

type ABC = A | B | C;

type omitA = Omit<ABC, A>;

enter image description here

我无法省略接口,但是,省略字符串属性可以很好地工作。

如何排除该界面?

1 个答案:

答案 0 :(得分:5)

Omit类型用于从类型中删除属性(通过提供其名称作为字符串,数字或符号)。

您正在寻找的是added in version 2.8Exclude

type ABC = A | B | C;

type omitA = Exclude<ABC, A>;