通过添加新类型检查类型区分的联合

时间:2019-03-05 23:00:32

标签: typescript types discriminated-union

可以说我有以下打字稿类型:

f"{result[1:-1]}\n"

我想要的是当我向枚举添加新类型时能够使类型检查器失败。所以我希望的是:

pip3 install lxml

我会遇到某种错误,需要我定义一个新的Baz类型并将其添加到联合中。

这可能吗?

1 个答案:

答案 0 :(得分:1)

如果您要输入类型Entity中的错误,则可以向相交处添加另一种类型,该类型需要EntityKind来扩展EntityUnion['kind']

enum EntityKind {
  Foo = 'foo',
  Bar = 'bar',
}

type Foo = {
  kind: EntityKind.Foo,
  foo: string
}

type Bar = {
  kind: EntityKind.Bar,
  bar: number
}
type Check<T, U extends T> = {}

type EntityUnion = Foo | Bar 
type Entity = EntityUnion & {
  id: string,
  name: string
} & Check<EntityUnion['kind'], EntityKind>