更短的写法<key extends =“”keyof =“”discriminatedmap =“keyof”discriminatedmap =“”>?

时间:2018-01-02 08:45:47

标签: typescript functional-programming typescript2.0 algebraic-data-types

我非常依赖ADT来建模我的数据。我发现自己一遍又一遍地写Key extends keyof DiscriminatedMap = keyof DiscriminatedMap。是否有更短的方式来声明相同的内容?

type DiscriminatedUnion<Key extends keyof DiscriminatedMap = keyof DiscriminatedMap> = 
  DiscriminatedMap[Key] & { kind: Key }

type DiscriminatedMap = {
  kindA: { someRecordType: string }
  kindB: { someOtherRecordType: number }
}

0 个答案:

没有答案