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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage