gpt4 book ai didi

javascript - 如何初始化具有数组的 Typescript 接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 09:29:27 28 4
gpt4 key购买 nike

假设我有以下接口(interface):

export interface MyObject {
id: string;
createdAt: Date;
updatedAt: Date;
}

export interface MyFile extends MyObject {
data: any;
name: string;
}

export interface MyUser extends MyObject {
name: string;
photos: Array < MyFile > ;
}

如何在 Angular 应用程序中初始化 MyUser 实例?我遇到的问题是我的对象实际上很大,我认为有一种方法可以不必为每个属性声明默认值,尤其是我的模型中确实有数组的数组!

最佳答案

任何符合接口(interface)的东西都会根据定义实现它。这是因为 TypeScript 具有结构类型系统。

这里有几个初始化接口(interface)实现的例子。

const user = {
id: "1",
createdAt: new Date(),
updatedAt: new Date(),
name: "Kurt",
photos: [{
id: "1",
name: "avatar.png",
createdAt: new Date(),
updatedAt: new Date(),
data: "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
}]
};

上面的对象字面量实现了MyUser接口(interface)。

您还可以在变量声明中指定接口(interface)类型,这在这种情况下很有用,因为它在我们编写对象文字时为接口(interface)成员提供智能感知。

const user: MyUser = {
id: "1",
createdAt: new Date(),
updatedAt: new Date(),
name: "Kurt",
photos: [{
id: "1",
name: "avatar.png",
createdAt: new Date(),
updatedAt: new Date(),
data: "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
}]
};

关于javascript - 如何初始化具有数组的 Typescript 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47252838/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com