gpt4 book ai didi

javascript - TypeScript - 将多个接口(interface)组合成一个

转载 作者:行者123 更新时间:2023-11-30 10:58:13 24 4
gpt4 key购买 nike

我想将几个接口(interface)组合成一个接口(interface):Member:

interface Person {
name?: {
firstName?: string;
lastName?: string;
};
age: number;
birthdate?: Date;
}

interface User {
username: string;
email: string;
}

interface Player {
room: number;
group?: number;
}

我的问题是:如何通过组合上述接口(interface)创建一个新接口(interface):Member,所以我最终得到以下内容:

interface Member {
firstName: string;
lastName: string;
age: number;
birthdate?: Date;
username: string;
email: string;
room: number;
group?: number;
}

请注意,结构发生了一些变化。例如,Person["name"] 中的字段现在直接包含在新界面的根级别。此外,这些字段现在是必填字段(之前它们是可选的)。

谢谢!

最佳答案

Person 界面变成“扁平化”界面,让我们创建一个名为 PersonName 的新界面,新界面如下所示:

interface PersonName {
firstName?: string;
lastName?: string;
}

然后,Person界面会变成:

interface Person {
name?: PersonName;
age: number;
birthdate?: Date;
}

最后,Member 接口(interface)的定义语法如下:

interface Member extends Player, User, Omit<Person, 'name'>, PersonName  {}

所有代码:Playground

关于javascript - TypeScript - 将多个接口(interface)组合成一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59134206/

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