我在Typescript中创建了enum
字符串,如下所示
export enum Widget {
ICONWIDGET = "IconWidget",
};
但我收到运行时错误' ==='不能应用于类型'字符串'当我将字符串与枚举字符串进行比较时,以及' Widget' 。
getWidgetComponent(componentName:string) {
if(componentName === Widget.ICONWIDGET){
return IconWidgetComponent;
}
}
我在Github中看到了类似的问题。这有什么解决办法吗?
答案 0 :(得分:2)
我升级到最新版本的Typescript(2.4.1),它运行良好。我使用的以前版本的Typescript是2.1.4。
npm install -g typescript@latest
答案 1 :(得分:0)
你可以断言:
getWidgetComponent(componentName:string){
if(componentName === (Widget.ICONWIDGET as string)){
return IconWidgetComponent;
}
}
答案 2 :(得分:0)
您可以将枚举值强制转换为字符串:
if(componentName === Widget.ICONWIDGET as string) {
答案 3 :(得分:0)
这有效:
enum Widget {
ICONWIDGET = "IconWidget"
};
class X {
getWidgetComponent(componentName: string) {
if (componentName === (Widget.ICONWIDGET as string)) {
return 'Put what you want to return here.';
}
}
}
var x = new X();
alert(x.getWidgetComponent("IconWidget"));