【问题标题】:What would be the right way to present business objects in the front end?在前端呈现业务对象的正确方法是什么?
【发布时间】:2019-04-25 10:08:11
【问题描述】:

有一个返回人员列表的后端。 它使用 Angular/rxjs 自动映射到 TypeScript 业务对象类(Person)对象的集合。

export class Person {
   Id: string;
   Name: string;
   Age: number;
}

需要在带有附加列的列表中显示这些实体,说明是否选择了记录 - 需要进一步处理。

问题是 - 这样做的正确方法是什么?

我是否应该创建一个继承自 PersonPersonModel 类并在其中添加其他字段?

export class PersonModel extends Person {
   Selected: boolean;
}

或者,我是否应该忽略后端与Selected 属性无关的事实,而只是将属性添加到Person 类?

export class Person {
   Id: string;
   Name: string;
   Age: number;
   Selected: boolean;
}

还有其他更合适的方法来处理这种情况吗?

【问题讨论】:

  • 组合,也许是像{ person: Person, selected: boolean }这样的对象。
  • 创建一个 PersonRow 类/接口,其中包含 Person 类型的字段 person 和 boolean 类型的选定字段?

标签: angular typescript architecture rxjs angular6


【解决方案1】:

您可以创建一个扩展另一个接口的接口,而不是类。

export interface Person {
   Id: string;
   Name: string;
   Age: number;
}

export interface PersonAttrib extends Person {
   Selected: boolean;
}

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2020-02-22
    • 1970-01-01
    • 2020-11-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多