如何在TypeScript中翻转联合的分布性?

时间:2019-03-04 15:29:09

标签: typescript

在下面的代码中,SomeMagic的类型必须是反转Y的发布性?

type X<A> = { value: A };
type Y = X<number> | X<string>;
type Z = SomeMagic<Y>;  // <-- what SomeMagic should be to get Z of X<number | string>?

1 个答案:

答案 0 :(得分:2)

您可以反转Y.value的类型并将其用作X的参数:

type X<A> = { value: A };
type Y = X<number> | X<string>;
type Z = X<Y['value']>;

结果:

type Z = {
  value: string | number;
};