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

如何在TypeScript中创建耦合类型,实现A-X、B-Y的配对约束?

实现TypeScript关联配对类型

要实现A与X、B与Y的强制配对,你可以用联合类型来定义MyInterface,让它仅包含两种合法的组合分支:

步骤1:定义基础类型

先明确你的A、B、X、Y类型(以下为示例定义,可替换为你实际的类型):

// 示例基础类型,可根据实际需求修改
type A = { type: 'A' };
type B = { type: 'B' };
type X = { type: 'X' };
type Y = { type: 'Y' };

步骤2:定义关联的联合类型

通过联合类型限定仅允许合法的属性组合:

type MyInterface = 
  | { a: A; x: X }
  | { a: B; x: Y };

验证效果

合法赋值(无类型错误)

const valid1: MyInterface = { a: { type: 'A' }, x: { type: 'X' } };
const valid2: MyInterface = { a: { type: 'B' }, x: { type: 'Y' } };

非法赋值(触发TypeScript类型错误)

// 错误:类型不匹配MyInterface的任何分支
const invalid1: MyInterface = { a: { type: 'A' }, x: { type: 'Y' } };

// 错误:类型不匹配MyInterface的任何分支
const invalid2: MyInterface = { a: { type: 'B' }, x: { type: 'X' } };

原理说明

联合类型的每个分支都是独立的对象类型,TypeScript会严格检查赋值是否匹配其中任意一个分支。当尝试混合不匹配的属性(比如A配Y),该对象无法符合联合类型的任何分支,因此会触发类型错误,实现强制配对的约束。

内容的提问来源于stack exchange,提问作者Ólavur Nón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:40:01