¿Cómo obtengo el tipo de elemento de matriz en TypeScript usando la API de Reflection?

Tengo la siguiente pequeña clase en TypeScript, con algunos campos públicos decorados:

class Company {
    @dataMember
    public name: string;

    @dataMember
    public people: Person[];
}

class Person {
    // ...
}

Mediante el usoreflejar metadatos, Puedo determinar los tipos de propiedades de la empresanombre ypersonas: son las funciones de constructorCuerda yFormación, respectivamente, lo cual es esperado y lógico.

La función de decorador de mi propiedad:

function decorate(target: Object, propertyKey: string | symbol): void {
    var reflectType = Reflect.getMetadata("design:type", target, propertyKey);
    // ...
}

Pero, ¿cómo podría determinar el tipo (función del constructor) de la matrizelementos? ¿Es posible? En el ejemplo anterior, debería ser (una referencia a)Persona.

Nota: Necesito la referencia de tipo antes de la creación de instancias, y debido a esto, es imposible determinar dinámicamente el tipo usando elementos de matriz: no hay elementos de matriz, ni siquiera hay una instancia de Array.

Respuestas a la pregunta(1)

Su respuesta a la pregunta