You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算属于T或U但不同时属于两者的类型?

实现TS中属于T或U但不同时属于两者的类型

你需要的是类型的对称差集——只存在于类型T或只存在于类型U中的成员,排除同时属于两者的部分。可以通过TypeScript的内置工具类型组合实现:

type SymmetricDifference<T, U> = Exclude<T | U, T & U>;

测试示例

用你给出的类型集合测试:

type Result = SymmetricDifference<1|2|3, 2|3|4>; // 结果为 1 | 4

原理说明

  • T | U:先获取T和U所有类型的并集(即1|2|3|4)
  • T & U:提取同时存在于T和U中的交集类型(即2|3)
  • Exclude<T | U, T & U>:从并集中剔除交集部分,最终得到仅属于单侧的类型

内容的提问来源于stack exchange,提问作者Adehunoluwa Praise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:50:44