我有两个类,一个继承自另一个:
class A {
protected do() {
console.log("do");
}
}
class B extends class A {
public do() {
super.do();
}
}
我想要的是把do()
方法变成公共的,而不需要复制基类的代码或者调用super.do()
,像C++这样的语言允许用修改后的访问修饰符重复声明一个方法来实现这个目的,类似于:
class A {
protected do() {
console.log("do");
}
}
class B extends class A {
public do();
}
但这会被解释为方法重载。
类似的方法在Typescript中是否可行?
1条答案
按热度按时间oxcyiej71#
是的,可以使子类的限制性更小,而不必重新实现该方法。
Playground链接
这将执行接口合并:
class Foo {}
声明运行时类型1.它还声明了位于环境上下文中的所述类的接口。
1.与类分离的
interface Foo {}
将与同名类的接口定义合并。这允许改变接口是什么。特别是这里它声明了
do()
方法,因此它总是公共的。因为类B
已经继承了do()
的实现,所以不需要进行新的实现。