2017-05-29 106 views
1

問題是enum可以用作鍵類型而不是「數字」或「字符串」嗎?目前,似乎唯一可能的聲明是x:{[key:number]:any},其中鍵可以是「number」或「string」類型。是否有可能使事情就像這個例子:在Typescript中使用Enum作爲受限密鑰類型

例子:

enum MyEnum 
{ 
    First, 
    Second 
} 

var layer:{[key:MyEnum]:any}; 

回答

3

是。只需鍵入

let layer:{[key in keyof typeof MyEnum]: any} 

keyof關鍵字是可用的,因爲Typescript 2.1。有關更多詳細信息,請參閱TypeScript documentation。 只使用keyof作爲枚舉不起作用(你會得到enum類型的鍵而不是枚舉常量),所以你必須鍵入keyof typeof

+0

這看起來像我正在尋找的。 TNX – Hivaga