当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


TypeScript String转enum用法及代码示例


在 TypeScript 中,枚举是一种主要用于存储数值和string-type值的常量变量。在本文中,我们将学习如何使用 TypeScript 将字符串转换为枚举。

有两种方法可以用来解决这个问题:

使用自定义映射

在这种方法中,我们将定义一个用字符串值初始化的枚举,然后映射每个项目以将它们与字符串进行比较并返回匹配的枚举值以将字符串转换为枚举。

例子:下面的示例将解释如何使用自定义映射将字符串转换为枚举。

Javascript


enum GFG {
    name = "GeeksforGeeks",
    desc = "A Computer Science portal."
}
// Function to convert string into enum
function convertStrToEnum(convertingStr: string):
    GFG | string {
    switch (convertingStr) {
        case "GeeksforGeeks":
            return GFG.name;
        case "A Computer Science portal.":
            return GFG.desc;
        default:
            return `Pass either "${GFG.name}" or "${GFG.desc}"
            as testing string to the function`;
    }
}
console.log(convertStrToEnum("GeeksforGeeks"));
console.log(convertStrToEnum("TypeScript"));
console.log(convertStrToEnum("A Computer Science portal."));

输出:

GeeksforGeeks
Pass either "GeeksforGeeks" or "A Computer Science portal." as testing string to the function
A Computer Science portal.

一起使用 keyof 和 typeof 运算符

key 类型在 TypeScript 中,运算符可以一起用于将字符串转换为枚举。

用法:

const variable_name: keyof typeof enum_name = value;

例子:下面的示例将解释如何使用 keyof 和 typeof 运算符将字符串转换为枚举。

Javascript


enum GFG {
    name = 25,
    desc = 56
}
// Converting string to enum
const myStr: keyof typeof GFG = 'name';
const myStr1: keyof typeof GFG = 'desc';
// It prints 25, as the string is now converted
// to the value of first constant of enum
console.log(GFG[myStr]);
// It prints 56, as the string is now converted
// to the value of second constant of enum
console.log(GFG[myStr1]);

输出:

25
56

使用类型断言

在此方法中,我们将在转换时使用未知类型断言将字符串转换为枚举。

用法:

const variable_name1: string = value_as_enum_key_as_string;
const variable_name2 = variable_name1 as unknown as enum_name;

例子:下面的代码示例说明了使用 TypeScript 将字符串转换为枚举的类型断言方法。

Javascript


enum GFG {
    num1 = 28,
    num2 = 56,
    num3 = 84
}
// Assigning enum values to 
// string type variables
const str1: string = 'num1';
const str2: string = 'num2';
const str3: string = 'num3';
// Converting String into enum
const str1ToEnum = str1 as unknown as GFG;
const str2ToEnum = str2 as unknown as GFG;
const str3ToEnum = str3 as unknown as GFG;
console.log(GFG[str1ToEnum]);
console.log(GFG[str2ToEnum]);
console.log(GFG[str3ToEnum]);

输出:

28
56
84


相关用法


注:本文由纯净天空筛选整理自abhish8rzd大神的英文原创作品 How to Convert a String to enum in TypeScript?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。