打字稿枚举

时间:2021-06-29 19:56:16

标签: typescript typescript-typings

所以我有一个值是枚举的类型。 示例:

enum TaskStatus {
 COMPLETED
 IN_PROGRESS
 TO_DO
}

type MyFormType {
  status: TaskStatus
}

但是我应该如何告诉 ts MyFormType 中的状态是 TaskStatus 的字符串值(“0”、“1”等)?

1 个答案:

答案 0 :(得分:3)

您可以使用字符串模板类型将整数枚举类型(和整数文字类型)转换为字符串:

// "0" | "1" | "2"
type TaskStatusString = `${TaskStatus}`

如果您希望键名作为字符串文字类型,那也是可能的:

// "COMPLETED" | "IN_PROGRESS" | "TO_DO"
type TaskStatusName = (keyof typeof TaskStatus) & string

Playground Link