enum Month {
Jan='January',
Feb = 'February',
Mar='March'
}
console.log(Month.Feb);
for(var n in Month) {
console.log(n);
console.log(Month[n]);
}
输出如下:
[LOG]: "February"
[LOG]: "Jan"
[LOG]: "January"
[LOG]: "Feb"
[LOG]: "February"
[LOG]: "Mar"
[LOG]: "March"
但是编译器总是“提示”/“报错”:
Element implicitly has an 'any' type because expression of type 'string' can't be used to index type 'typeof Month'. No index signature with a parameter of type 'string' was found on type 'typeof Month'.
string 不能用于 enum 访问的 index 么?
但是结果,似乎又能够正常工作。不是很理解。
又比如:
const a : Month = Month["Jan"];
console.log(a);
console.log(typeof a);
[LOG]: "January"
[LOG]: "string"
我已经指定 a 的 type 是 Month,编译器没有报错,但是打印出来,typeof a 是 string
翻了半天 typescript 的文档,貌似也没有解释得很清楚。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.