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

TypeScript中如何更简洁地在两个对象之间复制子集数据?

实现方案

1. 最简写法(推荐)

直接使用对象扩展运算符即可,一行完成赋值,无需逐字段声明:

const b: B = { ...a, dateOfBirth: new Date() }

该写法会自动复制a的所有属性到新对象,再追加dateOfBirth字段,TypeScript会自动校验a中是否包含B要求的firstName、lastName必填字段,只要匹配就不会报类型错误。

2. 严格剔除多余字段写法

如果你的A类型实例实际带有middleName字段,需要严格遵守B类型的结构不携带多余属性,可以用下面的写法:

const { middleName, ...restA } = a
const b: B = { ...restA, dateOfBirth: new Date() }

这种写法会主动丢弃middleName字段,生成的b完全符合B类型的结构定义。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 18:15:03