2017-05-09 2 views
0

Ich habe eine Schnittstelle für Eis und es sieht so aus:Typoskript Syntax für Typ innerhalb Objekt erklärt

interface Icecream { 
    name: string 
    sorbet?: boolean 
} 

Jetzt möchte ich ein Objekt erstellen, die eine Eigenschaft enthält icecreams, und ich möchte, dass das Eigentum an sei ein Array von Typ Icecream. Wie kann ich Typoskript sagen, da die Doppelpunkt-Notation bereits für die Zuweisung verwendet wird?

const myFavs = { 
    icecreams: [ 
     { 
     name: 'Vanilla', 
     sorbet: false 
     }, 
     { 
     name: 'Strawberry', 
     sorbet: true 
     } 
    ] 
    } 

Antwort

1

Sie geben den myFavs Variable: es besser lesbar

const myFavs: { 
    icecreams: Icecream[] 
} = { 
    icecreams: [ 
     { 
     name: 'Vanilla', 
     sorbet: false 
     }, 
     { 
     name: 'Strawberry', 
     sorbet: true 
     } 
    ] 
    } 

Oder eine Art Alias ​​zu machen:

type objectWithIceCreamsArrayProperty = { 
    icecreams: Icecream[] 
} 

const myFavs: objectWithIceCreamsArrayProperty = { 
    icecreams: [ 
     { 
      name: 'Vanilla', 
      sorbet: false 
     }, 
     { 
      name: 'Strawberry', 
      sorbet: true 
     } 
    ] 
} 
1

Eine weitere Option

const myFavs = { 
    icecreams: [ 
    { 
     name: 'Vanilla', 
     sorbet: false 
    }, 
    { 
     name: 'Strawberry', 
     sorbet: true 
    } 
    ] as Icecream[] 
} 
+0

Danke, das wusste ich nicht! :) – Hoff

0

ist kam ich über einen anderen Weg: fügen Sie Klammern um den Schlüssel-Plus-Typen, etwa so:

const myFavs = { 
    [icecreams: Icecream[]]: [ 
     { 
     name: 'Vanilla', 
     sorbet: false 
     }, 
     { 
     name: 'Strawberry', 
     sorbet: true 
     } 
    ] 
    } 

Das die knappste und lesbare Syntax so weit zu sein scheint, nicht sicher, wenn es zu Typoskript hat oder wenn es schon immer :)