【发布时间】:2017-03-05 14:43:57
【问题描述】:
我知道如何扩展 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' 不相同。
我只是不确定是否还有其他我不知道的机制。我不认为交集或联合类型在这里也有帮助。
【问题讨论】:
标签: typescript interface overriding typescript2.0 type-definition