2017-06-22 61 views
0

playground here中的Typescript示例出現錯誤。從本地變量設置枚舉對象的初始成員值時出錯

我想設置一個枚舉對象的初始成員值,並且該初始值來自const(數字)。 在這種情況下,以下所有值都會導致TS錯誤:「枚舉成員必須具有初始值設定項。」

這不允許嗎? 爲什麼以下成員未設置爲前一個枚舉成員加一個?

爲簡單起見,這裏的代碼,但你可以看到它在上面的操場鏈接:

const firstValue: number = 100; 
enum Animal { 
    Lion = firstValue, 
    Tiger, // gives error 
    Horse, // gives error 
    Fish // gives error 
} 

回答

0

這的確是不允許的時刻 - 在與一個初始化,枚舉成員另一個枚舉成員時,只當計算值靜態已知時自動遞增。現在,只包含數值和其他枚舉成員的值是靜態已知的,但分析當前不包括const聲明。

你可以繞過這與

enum FirstValue { 
    firstValue = 100 
} 

,並使用FirstValue.firstValue代替firstValue

+0

謝謝丹尼爾。你的建議工作正常。 – Gianluca

+0

其實我可能找到了另一個限制。我需要枚舉FirstValue在外部文件中(因爲它需要從多個文件中使用),當我從外部文件導出它時,然後將其導入到Animal枚舉所在的文件中,那麼我可以不再使用它,因爲它給了我這個錯誤:'[ts] Type'FirstValue'不能分配給類型'Animal'' – Gianluca