Tipo de construtor de classe em texto datilografado?

Como posso declarar umclass tipo, para garantir que o objeto seja um construtor de uma classe geral?

No exemplo a seguir, quero saber que tipo devo fornecer paraAnimalClass para que pudesse serPenguin ouLion:

class Animal {
    constructor() {
        console.log("Animal");
    }
}

class Penguin extends Animal {
    constructor() {
        super();
        console.log("Penguin");
    }
}

class Lion extends Animal {
    constructor() {
        super();
        console.log("Lion");
    }
}

class Zoo {
    AnimalClass: class // AnimalClass could be 'Lion' or 'Penguin'

    constructor(AnimalClass: class) {
        this.AnimalClass = AnimalClass
        let Hector = new AnimalClass();
    }
}

Claro, oclass O tipo não funciona e, de qualquer forma, seria muito geral.

questionAnswers(2)

yourAnswerToTheQuestion