假设我有以下枚举:
export enum ApiRole {
User = 1,
SuperUser = 2,
Restricted = 3,
}
我是否可以轻松地创建一个数组,以便可以使用这些枚举值进行索引,从而返回可以用作描述的字符串值?
我已经尝试过了:
export const ApiRoleDescriptions: {[role: number]: string} = {
1: 'Normal User',
2: 'Super User',
3: 'Restricted',
}
但是这种方法需要我手动设置每个枚举值的数值,这有点可维护性。
最终,我希望能够在代码的其他地方直接编写类似ApiRoleDescriptions[ApiRole.User]
的内容。
编辑:看来在撰写本文时,我的问题的答案是否定的-至少直到this PR被合并到打字稿中为止,打字稿目前的里程碑是3.3 / 3.4。但是,与此同时,我仍在寻找某种方法来实现此目的。
答案 0 :(得分:1)
您将这样声明:
PathCollection
export const ApiRoleDescriptions: {[k in ApiRole]: string} = {
1: 'Normal User',
2: 'Super User',
[ApiRole.Restricted]: 'Restricted',
}
将确保所有键都是已知的枚举值,并确保分配了所有值。
参考文献: