有没有办法从一组基类中动态扩展

时间:2019-03-12 16:58:29

标签: typescript generics inheritance mixins

我正在用打字稿编码,并具有以下类图。

Class diagramm 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
}

我该怎么做?我什至应该这样做吗?

0 个答案:

没有答案