我正在编写一个函数,该函数将枚举(字符串或数字枚举(作为参数。我该如何声明该参数的类型?
我想要的示例:
enum WeekDay {
Mon = "Mon",
Tue = "Tue",
Wed = "Wed",
Thu = "Thu",
Fri = "Fri",
};
const logMembers = (arg: Enum) => { // TODO: How do I declare the type for arg?
Object.values(arg).forEach(member => {
console.log(member);
}
};
logMembers(WeekDay);
/* Output:
Mon
Tue
Wed
Thu
Fri
*/
枚举没有通用类型(枚举也只是对象(,但您可以将其作为一个通用函数,以获取以下任何值:
enum WeekDay {
Mon = "Mon",
Tue = "Tue",
Wed = "Wed",
Thu = "Thu",
Fri = "Fri",
};
function listEnum<T>(_enum: T): void {
Object.values(_enum).forEach(member => {
console.log(member);
})
}
listEnum(WeekDay);
或者,{[key:string]: string | number}
也是有效的