2017-05-14 10 views
1

私はTypescriptで以下の列挙型を持っています。Typescriptでenum表示名を設定するにはどうすればよいですか?

enum RoleTypes{ 
    None, 
    Admin, 
    SuperAdmin 
} 

実行コード

var roleName = RoleTypes[RoleTypes.SuperAdmin]; 

変数のroleNameがSuperAdminあるとき​​、それは「スーパー管理者カスタム名前に変更することが可能である、と私はこれをどのように行いますか?直接列挙メンバーへ

答えて

2

Playground)を参照してください。

enum RoleTypes { 
    None, 
    Admin, 
    SuperAdmin 
} 

let RoleTypesDisplay: { [index: number]: string } = {}; 
RoleTypesDisplay[RoleTypes.None] = "None"; 
RoleTypesDisplay[RoleTypes.Admin] = "Administrator"; 
RoleTypesDisplay[RoleTypes.SuperAdmin] = "Super Administrator"; 

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin]; 
alert(roleName); 

// because RoleTypes is a number based enum that starts with 0 this is equals to 
RoleTypesDisplay = ["None", "Administrator", "Super Administrator"]; 

var roleName = RoleTypesDisplay[RoleTypes.SuperAdmin]; 
alert(roleName); 
2

you can assign 2.4活字体のよう文字列値

enum RoleTypes{ 
    None = "None", 
    Admin = "Administrator", 
    SuperAdmin = "Super Administrator" 
} 

はまた、あなたがこのためにseperatオブジェクトまたは配列を使用することができますhere

+0

まだリリースされていません。 typescript 2.4では、RoleTypes.None、0または 'None'の値は何ですか? –

+0

私はRoleTypes.Noneが0のままで、RoleTypes [RoleTypes.None]の値が 'None'であることを希望します。またはRoleTypes.SuperAdminは値2のままで、RoleTypes [RoleTypes.SuperAdmin]の値は「Super Administrator」です。出来ますか? –

+0

GHのコミットによれば、intとstringを含むenumの型を混在させることができます –

0

はい、引用された識別子を使用してエイリアスを作成するだけです

enum RoleTypes { 
None, 
Admin, 
SuperAdmin, 
'Super Administrator' = SuperAdmin 
} 
関連する問題