gpt4 book ai didi

javascript - TypeScript:有没有办法扩展多个接口(interface)并合并相同的属性?

转载 作者:行者123 更新时间:2023-12-01 15:15:55 26 4
gpt4 key购买 nike

我有两个接口(interface)AB他们有一个共同点

interface A {
a: boolean;
b: number;
c: string;
d: boolean;
}

interface B {
d: string;
}

interface C extends A,B {}
理想情况下我想要 C成为
{
a: boolean;
b: number;
c: string;
d: boolean | string; <- merged
}
有没有办法做到这一点?我知道我可以使用 Pick遗漏相同的键,然后扩展它,但还有其他方法吗?

最佳答案

由于AB冲突,我相信你不能把它们结合起来。如果你知道有冲突的键是什么,你可以在声明 C 时省略它们:

interface A {
a: boolean;
b: number;
c: string;
d: boolean;
}

interface B {
d: string;
}

interface C extends Omit<A, 'd'>, Omit<B, 'd'> {
d: string | boolean
}

let c: C = {
a: true, b: 3, c: 'a', d: 'a'
}

关于javascript - TypeScript:有没有办法扩展多个接口(interface)并合并相同的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63735513/

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