【发布时间】:2019-10-21 16:08:53
【问题描述】:
我需要类B扩展接口C,但是我想使用A::methodA的实现来计算B::methodA的结果。
interface C {
methodA(): number
}
class A {
methodA(): string {
return '42'
}
}
class B extends A implements C {
methodA(): string {
return Number(super.methodA()).
}
}
我可以将A 类的实现与继承一起使用,还是关联是我唯一的希望?
【问题讨论】:
-
您能否让这些名称就您实际需要做的事情而言有点明显?因为如前所述,没有真正的理由这样做:
methodA通常会有一个名称,如果正确选择,已经暗示结果将是一个字符串并且有一个子类也试图实现冲突的界面真的很奇怪。 -
尝试进行继承将是painful and messy。对于这样的事情,继承是脆弱的;人们建议使用作曲是有原因的。
标签: javascript typescript clean-architecture