' ==='不能应用于类型'字符串'和' enum'字符串值

时间:2017-07-12 22:24:28

标签: angularjs typescript

我在Typescript中创建了enum字符串,如下所示

 export enum Widget {
    ICONWIDGET = "IconWidget",
};

但我收到运行时错误' ==='不能应用于类型'字符串'当我将字符串与枚举字符串进行比较时,以及' Widget'

 getWidgetComponent(componentName:string) {

              if(componentName ===  Widget.ICONWIDGET){
                  return IconWidgetComponent;
              }
      }

我在Github中看到了类似的问题。这有什么解决办法吗?

https://github.com/Microsoft/TypeScript/issues/11533

4 个答案:

答案 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)