【发布时间】:2018-09-30 18:14:41
【问题描述】:
除了重写函数并手动编写switch 语句或以某种方式复制粘贴switch 之外,有没有办法将来自 2 个不同类但具有相同函数名称的 switch 语句组合成 1 个来自 ClassB 并将其粘贴到来自 ClassA 的 switch 之后?
A类:
protected casesHandler(): void
{
switch (case){
case 0:
break;
default:
super.caseHandler();
}
}
B类:
protected casesHandler(): void
{
switch (case){
case 1:
break;
default:
super.caseHandler();
}
}
想要的结果:
protected casesHandler(): void
{
switch (case){
case 0:
break;
case 1:
break;
default:
super.caseHandler();
}
}
尽量避免:
protected casesHandler(): void
{
switch (case){
case 0:
break;
default:
super.caseHandler();
}
switch (case){
case 1:
break;
default:
super.caseHandler();
}
}
【问题讨论】:
-
可以说 ClassA 和 ClassB 实际上是某种插件。两者都扩展了 ClassC。因此视情况而定,将相应地使用 A 类和 B 类。但在某些特殊情况下,插件的两个功能都需要。默认情况下,A 类和 B 类实际上是超回 C 类中的同一个函数。或者现在可以忽略默认值。
标签: javascript typescript merge