gpt4 book ai didi

typescript - 将字符串转换为 typescript 枚举的通用函数

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:25 26 4
gpt4 key购买 nike

我找到了 this great answer关于如何将字符串转换为 typescript 枚举。基于此,我编写了这个函数

enum Color { Red='red', Green='green' }

function mapColorString(strColor: string): Color {
const colorKey = strColor as keyof typeof Color
return Color[colorKey]
}

但是现在当我试图让它变得通用时,

function getEnumFromString<T>(str: string): T {
const enumKey = str as keyof T
return T[enumKey]
}

我在返回语句中得到错误:'T' 仅指一个类型,但在这里用作值。

我想使它成为通用的,因为我有许多枚举需要根据它们的字符串值生成,我不希望每个枚举都有一个单独的方法。

最佳答案

当我通过枚举定义时,我可以让它工作:

enum Color { Red='red', Green='green' }

function getEnumFromString<T>(type: T, str: string): T[keyof T] {
const casted = str as keyof T;
return type[casted];
}

const bar = getEnumFromString(Color, 'Red');

关于typescript - 将字符串转换为 typescript 枚举的通用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992321/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com