Búsqueda de sitios web

Inicializar propiedades a partir de tipos genéricos en TypeScript


Tengo un código simple como se indica a continuación. Quiero autocrear instancias de los tipos genéricos proporcionados y simplemente crear múltiples servicios que trabajen con diferentes tipos dentro.

Todos los constructores son con parámetros.

Es fácil en C#, pero ¿cómo hacerlo en TypeScript?

export class MyClassA {
    constructor(data) {
    }
}

export class MyClassB {
    constructor(data) {
    }
}

export class BaseService<TTypeA, TTypeB> {

    typeA: TTypeA;
    
    typeB: TTypeB;

    constructor(data) {

        // How to create instances of typeA and typeB?
        typeA = new TTypeA(data);
        typeB = new TTypeB(data);
    }
}


export class DataService extends BaseService<MyClassA, MyClassB> {

    constructor(data) {

        super(data)
        
    }
    
    doSomething() {
    
        // Accessing data
        
        // this.typeA ...
        // this.typeB ...
    
    }
}

const data: any = {};
const service = new DataService(data);

Descubrí que necesito poner algunos parámetros del creador de tipo en el constructor para obtener el tipo en tiempo de compilación, pero ¿cómo?