gpt4 book ai didi

typescript - 我如何在 typescript 上制作多类型属性接口(interface)

转载 作者:行者123 更新时间:2023-12-04 16:03:52 24 4
gpt4 key购买 nike

我想在 typescript 中使用两个不同的接口(interface)创建接口(interface)属性。这可能吗?

interface IPayload1 {
id: string;
name: string;
}
interface IPayload2 {
id: string;
price: number;
}

interface Demo {
// Can this be possible?
payload: IPayload1 | IPayload2;
}

最佳答案

您的代码将起作用,并且可以使用 | 说属性可以是类型列表之一。 .这称为 Union Type .

请注意,在使用联合类型时,您可能需要使用类型保护或强制转换,以防您想要访问特定于少于所有列出类型的属性。例如:

const demo: Demo = {
payload: {
id: '1',
name: 'boo',
},
};

const demo2: Demo = {
payload: {
id: '1',
price: 25,
},
};

// property is shared between types
demo.payload.id;

// If you do not cast, these will yield errors because the properties are not shared
(demo.payload as IPayload1).name;
(demo.payload as IPayload2).price;

关于typescript - 我如何在 typescript 上制作多类型属性接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53064664/

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