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.