TypeScript检查函数参数是有效的枚举之一

问题描述 投票:0回答:1

我有几个这样的枚举:

enum AuthCommands {
  LOGIN_REQUEST = "LOGIN_REQUEST",
  SIGNUP_REQUEST = "SIGNUP_REQUEST"
}

enum CustomerCommands {
  CUSTOMER_CREATE_REQUEST = "CUSTOMER_CREATE_REQUEST",
  CUSTOMER_UPDATE_REQUEST = "CUSTOMER_UPDATE_REQUEST",
  CUSTOMER_DELETE_REQUEST = "CUSTOMER_DELETE_REQUEST"
}

然后我有了这些枚举的对象:

const Types = {
  AuthCommands,
  CustomerCommands
};

然后我将具有以下功能:

async create(id: string, eventType: Types) {}

此部分eventType: Types是我试图检查此方法的调用者是否使用eventType参数对其进行调用的参数,这些参数是这些枚举之一的有效成员。我将如何实现?

(有了上述内容,我显然得到了错误[ts] 'Types' refers to a value, but is being used as a type here.

const Types是否是对枚举进行分组的正确方法?

typescript enums
1个回答
0
投票

您应按以下方式声明“类型”:

export type Types = AuthCommands | CustomCommands;
© www.soinside.com 2019 - 2024. All rights reserved.