2017-05-09 98 views
0

聲明類型我有冰淇淋的接口,它看起來像這樣:打字稿語法內部對象

interface Icecream { 
    name: string 
    sorbet?: boolean 
} 

現在我想創建一個包含一個屬性冰淇淋一個對象,我想那個屬性是類型的Icecream的數組。我怎麼能告訴Typescript,因爲冒號:符號已經用於賦值?

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

回答

1

您鍵入myFavs變量:

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

或者使用一個類型別名以使其更易於閱讀:

type objectWithIceCreamsArrayProperty = { 
    icecreams: Icecream[] 
} 

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

另一種選擇是

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

謝謝,我不知道! :) – Hoff

0

我來了另一種方式:加括號的關鍵十字型,像這樣:

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

這似乎是最簡潔易讀的語法,到目前爲止,不知道什麼時候加入它的打字稿,或者一直存在:)