2017-06-30 1 views
2

Angenommen, ein Containertyp mit Array-Eigenschaften unbekannter/generierten Typen mit T1, T2 etc. (kurz T*):Typoskript Mapped-Typen: Get Elementtyp des Arrays

interface MultiContainer 
{ 
    Item1: T1[]; 
    Item2: T2[]; 
    ... 
} 

Ist es möglich, die folgende abzuleiten Typ mit maped types:

interface SingleContainer 
{ 
    Item1: T1; 
    Item2: T2; 
    ... 
} 

ich suche nach einem gewissen Ausdruck wie:

type SingleContainer = 
    { [ P in keyof MultiContainer ]: MultiContainer[P] } 
              └─────────── returns T*[] instead of T* 

MultiContainer[P] gibt die Typen T*[] aber ich brauche einen Ausdruck, der T*

Vielen Dank im Voraus zurück!

Antwort

2

Ich glaube, das tut, was Sie brauchen:

type SingleContainer = {[P in keyof MultiContainer]: MultiContainer[P][0]} 
+0

, die den Trick tatsächlich tun haben. Danke @Frank Modica –