Wie erhalte ich den Array-Elementtyp in TypeScript mithilfe der Reflection-API?
Ich habe die folgende kleine Klasse in TypeScript mit einigen dekorierten öffentlichen Feldern:
class Company {
@dataMember
public name: string;
@dataMember
public people: Person[];
}
class Person {
// ...
}
Durch die Nutzungreflect metadata, Ich kann die Arten von Unternehmenseigenschaften bestimmenNam undMensche: Sie sind die Konstruktorfunktionen String und Arrayeweils @, was erwartet und logisch ist.
Meine Eigenschaftendekorfunktion:
function decorate(target: Object, propertyKey: string | symbol): void {
var reflectType = Reflect.getMetadata("design:type", target, propertyKey);
// ...
}
Aber wie könnte ich den Typ (Konstruktorfunktion) des Arrays bestimmen elements? Ist es überhaupt möglich? Im obigen Beispiel sollte es (ein Verweis auf) @ seiPerso.
Hinweis: Ich benötige die Typreferenz vor der Instanziierung. Aus diesem Grund ist es unmöglich, den Typ mithilfe von Array-Elementen dynamisch zu bestimmen: Es gibt keine Array-Elemente, es gibt nicht einmal eine Array-Instanz.