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

发布于 2022-09-30 23:06:37 字数 801 浏览 28 评论 0

正常数据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这两种写法,我写的改写方法都是在报错的。。。
求助大哥们帮帮忙!!!!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

始终不够 2022-10-07 23:06:37

方括号把 Key 括起来:

export const UserStatusLabel = {
    [UserStatus[1]]: '在职',
    [UserStatus[2]]: '离职',
};
你的他你的她 2022-10-07 23:06:37

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

enum UserStatus {
    NORMAL,
    RESIGN,
}

const UserStatusLabel: Record<UserStatus, string> = {
    [UserStatus.NORMAL]: "正常",
    [UserStatus.RESIGN]: "离职"
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文