删除接口中的(专用)签名

时间:2015-11-25 18:59:39

标签: inheritance typescript

是否可以在TypeScript?

中删除接口中的继承签名(特化)
interface ComplexNumber {
  divideBy(b: number): ComplexNumber;
}

interface RealNumber extends ComplexNumber {
  delete divideBy(0);
  rationalize(): [number, number];
  ...
}

1 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的。

但是,您可能会对可选参数/方法感兴趣。据我所知,您希望将接口 RealNumber 用于没有 divideBy 方法实现的类。如果这是真的,那么下一件事可能对你有用:

interface ComplexNumber {
  divideBy?(b: number): ComplexNumber;
}

interface RealNumber extends ComplexNumber {
  rationalize(): [number, number];
  ...
}

请注意方法名称 divideBy 之后的符号(这意味着,此方法是可选的,类可能有此方法,但也他们可能没有它,因为它是一种可选方法。)