加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 将属性添加到接口typescript

发布时间:2020-12-17 17:55:11 所属栏目:安全 来源:网络整理
导读:所以我正在开发一个Angular项目,并创建了这个界面,以便能够显示一些数据: export interface UserData { name: string,vorname: string,strasse: string,plz: string,ort: string,handynummer: string,telefonnummer: string,} 如果我想显示在我的数据库中添
所以我正在开发一个Angular项目,并创建了这个界面,以便能够显示一些数据:

export interface UserData {
  name: string,vorname: string,strasse: string,plz: string,ort: string,handynummer: string,telefonnummer: string,}

如果我想显示在我的数据库中添加更多数据,我将不得不将这些数据点添加到此接口,有没有办法动态创建接口,或在组件构造器中创建它?

解决方法

您无法动态更改/创建接口,因为它只是一个静态值,用于由Typescript编译器进行结构类型检查.

但是,如果您需要该接口上的所有属性和其他属性,则可以执行以下操作:

使用扩展

在组件上创建一个通用类型,如下所示:

@Component({
  selector: 'example'
  template: `<h1>example</h1>`
})
export class ExampleComponent<T extends UserData> {}

现在,您可以拥有类型为T且必须具有所有UserData属性的数据,然后添加您想要的任何其他属性.

您还可以使用extends为此特定情况创建新界面.

interface ExtendedUserData extends UserData {
 someOtherProperty: string
}

使用Intersection types

这可能接近您正在寻找的那种“动态”行为.假设您有一个属性,该属性需要是具有UserData的所有属性和附加extraProperty的对象.

你可以这样打字.

fancyUserData: UserData & { extraProperty: string }

使用交集类型,您可以临时添加属性.

简而言之,没有你不能真正构建动态类型,绝对不能在组件的构造函数中.但是,您可以使用我上面提到的方法根据需要扩展和模制您的接口.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读