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

TypeScript中如何定义存储双人信息的非数组式数据模型类?

可以采用你示例中的模型类形式,且有更优写法

当然可以用你给出的persons类结构来存储两人信息,完全适配你“固定传递恰好两人数据”的场景,这种非数组结构在Observable传递和组件接收时,确实能省去数组操作的麻烦,直接通过属性名(比如instance.person1Name)访问数据,逻辑更直观。

不过你当前的写法存在字段重复的问题,后续如果要给人员信息新增属性(比如性别、手机号),需要重复添加person1Xxx和person2Xxx两组字段,维护成本较高。推荐你复用通用Person类来优化这个模型,既保留非数组的结构,又提升扩展性:

首先定义通用的Person类:

export class Person {
  constructor(
    public name: string = '',
    public age: number = 0,
    public game: string = ''
  ) {}
}

再基于它定义存储两人信息的类:

export class Persons {
  constructor(
    public person1: Person = new Person(),
    public person2: Person = new Person()
  ) {}
}

这种写法的优势:

  • 避免重复字段,后续修改人员属性时只需更新Person类,无需改动Persons类
  • 类型更清晰,person1和person2都是标准的Person类型,方便复用针对单个人员的处理逻辑
  • 依然保持你想要的非数组结构,Observable传递时直接发送Persons实例,组件接收后直接访问person1、person2属性,用法和你原来的示例一致,但扩展性更强

如果你的业务场景确实永远只会传递两人信息,这种结构比数组更贴合需求——不用考虑数组长度校验、索引越界等问题,代码可读性也更高。

内容的提问来源于stack exchange,提问作者Mr. Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:39:53