我正在用打字稿编码,并具有以下类图。
类 FooDea , BarDea 和 SubDea 都具有相同的主体(构造函数,功能和属性),但是由于它们的父代和接口类型而不同。 在这里推荐的策略是什么,以防止重复代码,但仍然获得可读代码?当IFooDaa,IBarDaa和ISubDaa都实现IBase和IDea时,是否可以执行以下操作:
type Dea<T extends IBase> =
T extends IFoo ? FooDea<T> :
T extends IBar ? BarDea<T> :
T extends ISub ? SubDea<T>: never;
export class FooDea extends BaseDea<IFooDea> { }
export class BarDea extends BaseDea<IBarDea> { }
export class SubDea extends BaseDea<ISubDea> { }
export abstract class BaseDea<T extends Idea> extends Dea<T> {
// fields and properties
// constructor, with super statement
// functions and methods
}
我该怎么做?我什至应该这样做吗?