无法将字符串值分配给打字稿枚举(初始化程序类型字符串不能分配给变量类型)

2023-12-23

好像从 TypeScript 2.4 开始字符串枚举 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-4.html是一个特点。

但是以下方法不起作用:

enum Foo {
    A = "A",
    B = "B"
}

var foo : Foo = "A";

初始化程序类型字符串不可分配给变量类型 Foo

字符串文字的工作原理:

type Foo = "A" | "B";

但如果我want使用enum?有没有解决的办法?


您可以使用索引表达式来获取枚举的值:

enum Foo {
    A = "A",
    B = "BB"
}

var foo : Foo = Foo["A"];
var fooB : Foo = Foo["B"];

请注意,键将是成员的名称而不是值。

您还可以使用类型断言,但如果分配错误的值,则不会收到错误:

var foo : Foo = "A"  as Foo;
var foo : Foo = "D"  as Foo; // No error
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将字符串值分配给打字稿枚举(初始化程序类型字符串不能分配给变量类型) 的相关文章

随机推荐