首页 文章

无法将enums转换为typescript 2中的字符串

提问于
浏览
0

在Typescript 2版本之前,我曾用以下方式将枚举转换为字符串:

public myFunction(myEnum: MyEnum): string {
   return MyEnum[myEnum];
}

现在使用新版本的Typescript会产生以下错误:索引表达式参数必须是'string','number','symbol'或'any'类型 .

你知道我怎么解决这个问题吗?

1 回答

  • 1

    我相信你得到的错误是你声明 myFunction 返回一个字符串,但它实际上没有返回任何东西......

    public myFunction(myEnum: MyEnum): string {
       console.log(MyEnum[myEnum]);
    }
    

    通过返回值来修复它...

    public myFunction(myEnum: MyEnum): string {
       return MyEnum[myEnum];
    }
    

    或者通过更改返回类型...

    public myFunction(myEnum: MyEnum): void{
       console.log(MyEnum[myEnum]);
    }
    

    显示事情仍然有效的完整示例 .

    enum Example {
        Red,
        Blue,
        Green
    }
    
    alert(Example[Example.Red]);
    
    function myFunction(myEnum: Example): string {
       return(Example[myEnum]);
    }
    
    alert(myFunction(Example.Blue));
    

相关问题