¿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.