在 Angular 中使用多个接口和单个公共字段

问题描述 投票:0回答:1

我有2个不同的组件,组件A使用模型A,组件B使用模型B。现在A有一个id,组件B应该使用该id来处理它的方法。那么如果我想在模型 B 中使用相同的 id,可以吗?

Model A
export interface A{ id: number,firstname: string, lastname: string}
Model B
export interface B {id: number, phone: number}

或者是否可以向模型 A 添加“电话”,如下所示?

export interface A{ id: number,firstname: string, lastname: string,phone: number}

但是我收到错误,因为在组件 A 中调用它时,未使用电话。 解决这个问题的最佳方法或实用方法是什么?

angular typescript interface components mode
1个回答
0
投票

如果只有

phone
,您可以将其添加到模型A,如下所示:

export interface A{ id: number,firstname: string, lastname: string, phone?: number}

问号使该字段可选,因此您可以添加电话,但您不需要。

但我认为以下方法最适合您的情况,其结构就像在数据库中一样。

Model A
export interface A{ id: number,firstname: string, lastname: string, modelB?: B}
Model B
export interface B {id: number, phone: number}

这里我们将完整的

interface B
设置为 A 的子级,可以这么说。这些都是最好的方法和最佳实践。 顺便说一句:是的,您可以使用打字稿“更改”类型和接口(添加新属性,删除一个),但这不是一件好事......我们构建接口来构建数据以实现简单的重用和类型安全。如果我们改变接口——我们就不需要它;这是我的意见。

© www.soinside.com 2019 - 2024. All rights reserved.