繁体   English   中英

如何在 typescript 中键入 map 枚举值

[英]how to map enum values to type in typescript

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

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

现在,我有一个 function 需要一个数字和 api_type 参数

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

对于此 function,api_type 的可能值将是枚举api_type的键值

讨论function abcapi_type参数类型的最佳方法是什么?

一种方法是export type Api_Type = "index_api" | "create_api" | "show_api" | "update_api" | "destroy_api" 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 {我还必须记住手动将其添加到Api_Type

有没有办法,我可以将 map 枚举值转为一个类型? 或者更好的方法来做到这一点?

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);
 }

这是一个演示链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM