我知道如何扩展 TypeScript 接口,但我在这里要问的是如何覆盖接口中的特定键。例如,假设我有一个简单的界面A
:
interface A {
foo: string;
bar: number;
}
我还有另一个简单的界面B
,也有一个bar
键,但类型不同:
interface B {
bar: string;
baz: number;
}
本质上,我想将这些接口合并为一个,给我以下接口:
interface C {
foo: string; // from A.foo
bar: string; // from B.bar (overrides A.bar)
baz: number; // from B.baz
}
我希望我能以某种方式扩展:
interface C extends A, B {}
但我不能,因为我收到了这个错误,这是完全可以预料的,也是设计使然:
接口“C”不能同时扩展类型“A”和“B”。“A”和“B”类型的命名属性“bar”不相同。
我只是不确定是否还有另一种我不知道的机制。我不认为交集或联合类型在这里也有帮助。