TypeScript 枚举转为中文显示

· 171 words · 1 min

一般枚举我们用英文与数字/字符串对应,但显示的时候通常又要显示为中文,这种该怎么写好呢?我一般有两种做法。

再定义一个枚举

enum Status {
  Close = 0,
  Open = 1,
}

enum StatusName {
  Close = '关闭',
  Open = '开启',
}

用的时候直接取 StatusName.Close。假设此时接口返回的字段为 { status: 1 },那么用 StatusName[Status[data.status]] 即可将数字枚举转换为中文,注意这种方法只适用于数字枚举

再定义一个 Mapping

enum Status {
  Close = 0,
  Open = 1,
}

const StatusName = {
  [Status.Close]: '关闭',
  [Status.Open]: '开启',
} satisfies Record<Status, string>;

用的时候直接取 StatusName[Status.Close] 即可。

知乎
TypeScript