在 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
相关用法
- TypeScript String转Boolean用法及代码示例
- TypeScript String转JSON用法及代码示例
- TypeScript String转Date用法及代码示例
- TypeScript String charAt()用法及代码示例
- TypeScript String charCodeAt()用法及代码示例
- TypeScript String concat()用法及代码示例
- TypeScript String indexOf()用法及代码示例
- TypeScript String lastIndexOf()用法及代码示例
- TypeScript String localeCompare()用法及代码示例
- TypeScript String replace()用法及代码示例
- TypeScript String search()用法及代码示例
- TypeScript String slice()用法及代码示例
- TypeScript String split()用法及代码示例
- TypeScript String substr()用法及代码示例
- TypeScript String substring()用法及代码示例
- TypeScript String includes()用法及代码示例
- TypeScript String codePointAt()用法及代码示例
- TypeScript String repeat()用法及代码示例
- TypeScript String endsWith()用法及代码示例
- TypeScript String trim()用法及代码示例
- TypeScript String padStart()用法及代码示例
- TypeScript String normalize()用法及代码示例
- TypeScript String match()用法及代码示例
- TypeScript String matchAll()用法及代码示例
- TypeScript String padEnd()用法及代码示例
注:本文由纯净天空筛选整理自abhish8rzd大神的英文原创作品 How to Convert a String to enum in TypeScript?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。