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

如何基于已有TypeScript类型A和B创建扁平化新类型?

TypeScript 实现 A+B 扁平化类型

首先修正你给出的类型定义语法错误,TypeScript 中定义对象类型需要使用 =:

type A = {
    prop1: string
    prop2: B
}

type B = {
    prop3: string
    prop4: boolean
}

要实现你需要的扁平化类型,有两种直观的方式:

方法一:Pick 提取指定属性 + 交叉类型

直接从 A 中提取需要的 prop1,再和 B 做交叉类型合并:

type FlattenedAB = Pick<A, 'prop1'> & B;

方法二:Omit 移除冗余属性 + 交叉类型

移除 A 中不需要的 prop2 属性,再和 B 合并:

type FlattenedAB = Omit<A, 'prop2'> & B;

两种方式最终得到的 FlattenedAB 类型结构完全符合你的需求:

{
    prop1: string
    prop3: string
    prop4: boolean
}

可以通过以下代码验证类型有效性:

const validAB: FlattenedAB = {
    prop1: "foo",
    prop3: "bar",
    prop4: true
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:12:36