Como obtenho o tipo de item de matriz no TypeScript usando a API de reflexão?

Eu tenho a seguinte pequena classe no TypeScript, com alguns campos públicos decorados:

class Company {
    @dataMember
    public name: string;

    @dataMember
    public people: Person[];
}

class Person {
    // ...
}

Usandorefletir metadados, Posso determinar os tipos de propriedades da empresanome epessoas: são as funções construtorasCorda eMatriz, respectivamente, o que é esperado e lógico.

Minha função de decorador de propriedades:

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

Mas como eu poderia determinar o tipo (função construtora) da matrizelementos? Isso é possível? No exemplo acima, deve ser (uma referência a)Pessoa.

Nota: Preciso da referência de tipo antes da instanciação e, por isso, é impossível determinar dinamicamente o tipo usando itens de matriz: não há itens de matriz, nem sequer uma instância de matriz.

questionAnswers(1)

yourAnswerToTheQuestion