求问ts中如何在多个枚举的key合在一起?

新手上路,请多包涵

正常数据eg:

enum UserStatus {
  NORMAL,
  RESIGN,
}
enum UserStatusLabel {
  NORMAL="正常",
  RESIGN="离职",
}

这里UserStatus和UserStatusLabel中都有NORMAL、RESIGN,我想实现类似下面这种的

enum UserStatus {
  NORMAL="normal",
  RESIGN="resign",
}
enum UserStatusLabel {
  UserStatus[0]="正常",
  UserStatus[1]="离职",
}

就是两个enum 中只写一个NORMAL、RESIGN,这个可以实现吗?

或者使用js写法,正常数据eg:

export const UserStatus = {
  1: 'NORMAL',
  2: 'RESIGN',
};
export const UserStatusLabel = {
  NORMAL: '在职',
  RESIGN: '离职',
};

如何改写为下面这种

export const UserStatus = {
  1: 'NORMAL',
  2: 'RESIGN',
};
export const UserStatusLabel = {
  UserStatus[1]: '在职',
  UserStatus[2]: '离职',
};

目前enum和js这两种写法,我写的改写方法都是在报错的。。。
求助大哥们帮帮忙!!!!!!

阅读 2.6k
2 个回答

方括号把 Key 括起来:

export const UserStatusLabel = {
    [UserStatus[1]]: '在职',
    [UserStatus[2]]: '离职',
};

UserStatus 可以用 enum 来写,但是 UserStatusLabel 如果也要用 enum 来写就不行了,但是可以写成一个对象:

enum UserStatus {
    NORMAL,
    RESIGN,
}

const UserStatusLabel: Record<UserStatus, string> = {
    [UserStatus.NORMAL]: "正常",
    [UserStatus.RESIGN]: "离职"
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题