2017-06-03 84 views
0

以下變量包含對象的列表的接口:打字稿 - 創建複雜的對象

scenes = { 
    sky: { 
     image: 'assets/1.jpg', 
     points: { 
     blue_area: { 
      x: 1, 
      y: 2 
     }, 
     } 
    }, 
    blue_area: { 
     image: 'assets/2.jpg', 
     points: { 
     sky: { 
      x: 1, 
      y: 2 
     } 
     } 
    } 
}; 

如何我可以聲明爲這種變量的接口?

回答

1

你可以聲明爲場景的類型:

type Points = { 
    [key: string]: { 
    x: number; 
    y: number; 
    } 
} 

type Scenes = { 
    [key: string]: { 
    image: string; 
    points: Points; 
    } 
} 

let scenes: Scenes = { 
    sky: { 
     image: 'assets/1.jpg', 
     points: { 
     blue_area: { 
      x: 1, 
      y: 2 
     }, 
     } 
    }, 
    blue_area: { 
     image: 'assets/2.jpg', 
     points: { 
     sky: { 
      x: 1, 
      y: 2 
     } 
     } 
    } 
}; 
+0

'sky'和'blue_area'是可以通過任何其他替代的名字,我的意圖是使該密實任何其他名稱的東西一般。 – TheUnreal

+0

那麼,在這種情況下,你可以用'[key:string]'替換'[key in ScenceNames]?'。 –