在子类中使方法公开

时间:2017-05-17 08:13:13

标签: typescript

我有一个基类,它有一个受保护的方法foo和一个子类,它希望允许公共访问foo。由于这种方法会经常被调用,因此保存不必要的函数调用会很棒。是否有“更好”的解决方案来实现这一目标?我目前的黑客攻击:

abstract class A {
  protected foo(X:T) {...}
}
class B extends A {
  foo(X:T) {super.foo(X);}
}
B.prototype.foo = (<any>A.prototype).foo;

在A中公开foo不是一种选择,因为A的所有其他子类只能在内部访问foo。只有特殊的孩子B才允许从外面访问foo。

1 个答案:

答案 0 :(得分:1)

在这种情况下,附加调用的性能影响应该足够小,可以忽略或只留给虚拟机进行优化。

在子类中公开方法更为明确。