我有一个这样的枚举:
enum Steps {
Step1,
Step2,
...
}
我尝试以几种不同的方式使用它:
var cur_step : Steps = Steps[$(this).prop('data-step').toString()]; // compiler error
var str : string = $(this).prop('data-step').toString(); // no error
var cur_step : Steps = Steps[$(this).attr('data-step')];
var cur_step : Steps = Steps[String($(this).prop('data-step'))];
var cur_step : Steps = Steps[<string>$(this).prop('data-step')];
从属性到枚举的第一次转换给了我一个编译器错误:
无法将 'string' 转换为 '{ Step1: Steps; Step2:步骤;[x:数字]:字符串;}':类型'String'缺少来自类型'{ Step1:Steps;的属性'Step1' Step2:步骤;[x:数字]:字符串;}'。
为什么第一种方法不起作用?toString()
为方法的所有实例返回一个基本类型的字符串lib.d.ts
。