我在TypeScript中定义了以下枚举:
enum Color{
Red, Green
}
现在在我的函数中,我接收颜色作为字符串。我已经尝试了以下代码:
var green= "Green";
var color : Color = <Color>green; // Error: can't convert string to enum
如何将该值转换为枚举?
enum Color{
Red, Green
}
// To String
var green: string = Color[Color.Green];
// To Enum / number
var color : Color = Color[green as keyof typeof Color]; //Works with --noImplicitAny
本例使用TypeScript中的--noImplicitAny
来源:
https://github.com/Microsoft/TypeScript/issues/13775#issuecomment-276381229https://www.typescriptlang.org/docs/handbook/advanced-types.html#index-types
从Typescript 2.1开始,枚举中的字符串键是强类型的keyof typeof
用于获取有关可用字符串键的信息(1):
enum Color{
Red, Green
}
let typedColor: Color = Color.Green;
let typedColorString: keyof typeof Color = "Green";
// Error "Black is not assignable ..." (indexing using Color["Black"] will return undefined runtime)
typedColorString = "Black";
// Error "Type 'string' is not assignable ..." (indexing works runtime)
let letColorString = "Red";
typedColorString = letColorString;
// Works fine
typedColorString = "Red";
// Works fine
const constColorString = "Red";
typedColorString = constColorString
// Works fine (thanks @SergeyT)
let letColorString = "Red";
typedColorString = letColorString as keyof typeof Color;
typedColor = Color[typedColorString];
https://www.typescriptlang.org/docs/handbook/advanced-types.html#index-类型
TypeScript 0.9中的枚举基于字符串编号。简单转换不需要类型断言:
enum Color{
Red, Green
}
// To String
var green: string = Color[Color.Green];
// To Enum / number
var color : Color = Color[green];
在线试试吧
在我的OSS书中,我有关于此模式和其他枚举模式的文档:https://basarat.gitbook.io/typescript/type-system/enums
给定数字的字符串表示形式,如何将其转换为TypeScript中的类型?
我正在尝试将Typecript枚举值转换为数字,以便在我的下拉列表中显示枚举字符串值,但在提交按钮上,传递的是该值而不是字符串。枚举设置如下。 到目前为止,我已经能够控制台.log对象的键(字符串)(例如 Value),但我想做的是在发出对象后传递 0(数字)值。 我该怎么做?
本文向大家介绍Java将枚举转换为字符串,包括了Java将枚举转换为字符串的使用技巧和注意事项,需要的朋友参考一下 示例 有时您想将枚举转换为String,有两种方法可以实现。 假设我们有: 那么,我们如何将类似的东西转换Fruit.APPLE为"APPLE"? 使用转换 name() name()是一个内部方法,enum该方法返回String枚举的表示形式,返回值精确String表示枚举值的定义
我想用Typescript写这样的东西: 并按如下方式使用: 它会返回的地方 上面的函数按预期工作…但是输入抛出错误。对于
我知道我不是第一个问这个问题的人,正如我在标题中提到的,我正在尝试转换字符串值布尔值。 我之前已经将一些值放入本地存储,现在我想获取所有值并将所有值赋给一些布尔变量。 应用程序。组成部分ts 这里是这个。btnLoginNumOne和这个。btnLoginEdit是字符串值(“true,false”)。 镜子组成部分ts 在这个组件中this.btnLoginNumOne和t是布尔值; 我在sta
我有一个枚举文件,在其中我为PaymentTypes定义了一个对象: 这样我就有了可以使用的东西: