我正在玩一些Typescript。
假设我有一个object
,例如
let colors = {
RED: "r",
GREEN: "g",
BLUE: "b"
}
现在我想将其转换为enum
类型
enum Colors = {
RED = "r",
GREEN = "g",
BLUE = "b"
}
更新
我希望为 colors 对象生成typings
如果我向colors对象添加另一个key
,它应该包含在typings
中。
如果我这样做
colors['YELLOW'] = "y"
然后生成的typings
应为
declare enum colors {
RED = "r",
GREEN = "g",
BLUE = "b",
YELLOW = "y"
}
相反,生成类型是
declare const colors {
[x: string]: string
}
我怎样才能做到这一点?
答案 0 :(得分:-1)
Enums« 枚举允许我们定义一组命名常量。使用枚举可以更容易地记录意图,或创建一组不同的案例。 TypeScript提供基于数字和基于字符串的枚举。
TypeScript 2.4 + String enums - 在TypeScript 2.4之前,TypeScript仅支持基于数字的枚举,在这种情况下,只需将字符串文字强制转换为key3
{
key4 "value4 with spaces"
}
分配,使用2.4+然后将不再需要任何
any
Java脚本 Standard Style
enum Colors {
RED = <any>"R",
GREEN = <any>"G",
BLUE = <any>"B",
}
签入TypeScript小提琴fiddlesalad,typescriptlang
在效用函数下方,从字符串列表中创建K:V
可能会对您有所帮助。
var Colors;
(function (Colors) {
Colors["RED"] = "r";
Colors["GREEN"] = "g";
Colors["BLUE"] = "b";
})(Colors || (Colors = {}));
@see