首页 > 解决方案 > 在 Typscript 可区分联合中省略整个类型

问题描述

有区别的联合是打字稿中最方便的东西之一。但是,一旦定义它们就很难操作。我想弄清楚的是如何在联合中省略整个类型。举个例子:


export type A = {
  type: 'a',
  a: 'a'
}

export type B = {
  type: 'b',
  b: 'b'
}

export type C = A | B;

这一切都很好,但是消费模块有什么方法可以将类型 C 限制为仅 A?

我想在消费模块中完成类似以下的事情:


import { A, C, B } from 'type-defs.d'

type NewTypeA = SPECIAL_OMIT<C, B>

// A should be equivalent to NewTypeA

但我想不出任何办法来做到这一点。请注意,我并不是在寻求一种从可区分类型中省略属性的方法。我想从联合中省略整个类型。

标签: typescriptdiscriminated-union

解决方案


推荐阅读