I found this great answer about how to convert a string to a typescript enum. Based on that I have written this function
enum Color { Red='red', Green='green' }
function mapColorString(strColor: string): Color {
const colorKey = strColor as keyof typeof Color
return Color[colorKey]
}
But now when I try to make it generic,
function getEnumFromString<T>(str: string): T {
const enumKey = str as keyof T
return T[enumKey]
}
I get the error in the return statement: 'T' only refers to a type, but is being used as a value here.
I want to make this generic because I have a number of enums that I need to generate based on their string values, and I would like to not have a separate method for every one.