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

如何在TypeScript中替换类型?新增属性并修改已有属性类型

TypeScript 修改并扩展已有类型的正确方式

基于你定义的原类型:

type Person = {
  name: string
  hobbies: Array<string>
}

要实现新增age属性且将hobbies类型替换为Array<number>,你需要正确组合Omit工具类型与交叉类型,核心是把修改后的属性作为对象类型的一部分进行交叉,而不是直接交叉数组类型。

正确实现代码

// 移除原Person中的hobbies属性,再交叉新增age和修改后的hobbies属性
type NewPerson = Omit<Person, "hobbies"> & {
  age: number;
  hobbies: Array<number>;
};

// 验证使用
const people: Array<NewPerson> = [{name: "rich", age: 28, hobbies: [1,2,3]}];

为什么之前的写法不对?

你之前直接将Array<number>和Omit结果交叉,这会让类型变成{name: string}与数组类型的混合,不符合对象类型的结构要求。正确的做法是把需要修改的hobbies和新增的age放在一个对象类型里,再和Omit后的结果交叉,这样才能得到结构正确的新对象类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:50:27