如何映射枚举值以键入打字稿

时间:2020-08-17 20:12:39

标签: typescript

我有一个看起来像这样的枚举类型:

export enum API_TYPE {
  INDEX = "index_api",
  CREATE = "create_api",
  SHOW = "show_api",
  UPDATE = "update_api",
  DELETE = "destroy_api"
};

现在,我有一个带有数字和api_type参数的函数

export function abc (id: number, api_type:?) => 

对于此功能,api_type的可能值为枚举api_type的键值

讨论api_type的{​​{1}}参数类型的最佳方法是什么?

一种方法是function abc

然后

export type Api_Type = "index_api" | "create_api" | "show_api" | "update_api" | "destroy_api"

但是通过这种方式,如果我将新属性(键)添加到export function abc (id: number, api_type:Api_Type) => ,我还必须记住手动将其添加到 enum API_TYPE {

有没有办法将枚举值映射到类型?或更好的方法吗?

1 个答案:

答案 0 :(得分:1)

enum ApiType {
  INDEX = "index_api",
  CREATE = "create_api",
  SHOW = "show_api",
  UPDATE = "update_api",
  DELETE = "destroy_api"
};

 function abc (id: number, api_type:ApiType) {
    console.log(api_type);
 }

这里是Demo Link