【发布时间】:2019-08-13 18:11:23
【问题描述】:
我有两个接口,X 和 Y。 X 有 2 个属性,x1 和 x2。现在Y 想从X 继承,但不希望x2 被继承。
interface X {
x1 : string;
x2 : string;
}
interface Y extends X{
// x2 shouldn't be available here
}
作为TypeScript 的新人,我想不通。 TypeScript 中是否有任何 extends X without x1 类型的内置功能?
注意:在我的真实案例中,X 是一个内置的interface。所以,我需要在不更改X 接口的情况下执行此操作。有可能吗?
【问题讨论】:
-
没有。它违反了继承原则。如果汽车是车辆,而车辆有轮子,那么汽车也有轮子。如果您正在设计一辆没有轮子的汽车,那么它不应该扩展 Vehicle。继承很可能不是您应该使用的。
-
@JBNizet 你能给我推荐一个解决这种情况的好方法吗?
-
不,因为你没有描述情况。
-
好的。我会根据实际情况编辑问题。
-
@sn42 完全同意。即使我指出了这一点,但我想还不够清楚。
标签: typescript