2017-02-14 10 views
0

Typescript列挙型は数値ベースであり、開かれています。これは私がここでの問題は、今私が値0に関連付けられているColor.RedとColor.Blackも次のと関連していることが、私はColor.Blackを期待値0に関連付けられているということであるtypescriptで開いている列挙型の問題

enum Color { 
    Red = 0, 
    Green, 
    Blue 
} 

enum Color { 
    Black 
} 

を持つことができることを意味します明らかに修正は簡単ですが、動作が異常で、バグが発生する可能性があります。これは言語の問題なのでしょうか?これは何か他の理由で起こりますか?

答えて

1

言語のバグのようです。 Redの初期化を省略すると、TypeScriptによってエラーが発生します。しかし、それを初期化すればそれはできません。

The output is definitely broken

enum One { 
    Foo = 0, 
    Bar 
} 

enum One { 
    Baz 
} 

は明らかにあなたが:)

たくな結果ではありませんどの

var One; 
(function (One) { 
    One[One["Foo"] = 0] = "Foo"; 
    One[One["Bar"] = 1] = "Bar"; 
})(One || (One = {})); 
(function (One) { 
    One[One["Baz"] = 0] = "Baz"; 
})(One || (One = {})); 

にtranspileます

関連する問題