2016-11-15 100 views
0

打字稿2版本之前我用枚舉轉換爲字符串通過以下方式:與生成以下錯誤打字稿的新版本不能枚舉轉換爲字符串打字稿2

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

現在:索引表達式參數必須是「字符串」,「數字」,「符號」或「任何」類型。

你知道我該如何解決這個問題嗎?

回答

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]); 
} 

全長E xample顯示事情仍然有效。

enum Example { 
    Red, 
    Blue, 
    Green 
} 

alert(Example[Example.Red]); 

function myFunction(myEnum: Example): string { 
    return(Example[myEnum]); 
} 

alert(myFunction(Example.Blue)); 
+0

感謝您的回覆。這是我的錯,我發佈了不正確的代碼。事實上,這不是問題。它與此公告相關:https://blogs.msdn.microsoft.com/typescript/2016/08/30/announcing-typescript-2-0-rc/,但我不知道如何解決它。我有相同的代碼,它用TypeScript 1.9編譯時沒有錯誤,並且在以後的TypeScript中有錯誤 – Vasil