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

标签 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>?

最佳答案

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

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

结果:

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

关于typescript - 如何翻转 TypeScript 中联合的分布性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54986378/

相关文章:

javascript - Sequelize 不保存包含的对象

javascript - typescript ,类型对象不是通用的

typescript - 如何在链表中封装 join 或 flatten 方法?

javascript - 具有 'as' 属性的通用 React TypeScript 组件(能够渲染任何有效的 dom 节点)

javascript - 将带有 Promise 的函数从 JS 转换为 TS 时出现问题

javascript - 按类型过滤数组对象并将键值与对象进行比较

javascript - 将多个嵌套的 Promise 和 Promise 数组转换为 Observables

javascript - 从 TypeScript 对象中删除动态键

typescript 检查它的类型是否包含未定义的

javascript - 实时什么时候我们会用到AOT和JIT