0
我在打字稿規定的下列枚舉:錯誤在JavaScript
enum ColorType {
None = 0,
Default = 1,
RGB = 2,
ColorSet = 3,
Custom = 4
}
這編譯成以下的javascript:
(function (ColorType) {
ColorType[ColorType["None"] = 0] = "None";
ColorType[ColorType["Default"] = 1] = "Default";
ColorType[ColorType["RGB"] = 2] = "RGB";
ColorType[ColorType["ColorSet"] = 3] = "ColorSet";
ColorType[ColorType["Custom"] = 4] = "Custom";
})(ColorType || (ColorType = {}));
這看起來是正確的和類似Tristate enum in the documentation 。但是,當我在瀏覽器中運行代碼時,Firefox和Chrome都抱怨在枚舉定義的最後一行沒有定義ColorType
(即(ColorType || (ColorType = {}))
)。我認爲這是第一個。當我手動編輯代碼爲:
(function (ColorType) {
ColorType[ColorType["None"] = 0] = "None";
ColorType[ColorType["Default"] = 1] = "Default";
ColorType[ColorType["RGB"] = 2] = "RGB";
ColorType[ColorType["ColorSet"] = 3] = "ColorSet";
ColorType[ColorType["Custom"] = 4] = "Custom";
})(ColorType = {});
它在Firefox和Chrome中均正常工作。
我不明白爲什麼由Typescript生成的代碼生成錯誤,它看起來像他們試圖通過已存在的ColorType
變量或創建一個空對象,如果它不存在。但是,如果它是錯誤的,這是在Typescript編譯器中的錯誤?我正在使用TSC 1.7.40.24720。
是的,這只是輸出文件的一小部分。猜猜看,上面的代碼行包含:'//#sourceMappingURL = somefilename.js.mapvar ColorType;',構建腳本將一對文件連接成一個輸出文件,'var ColorType'結束於註釋結尾之前的文件由於缺少回車。所以,容易解決,謝謝! –