TypeScriptで初期値を指定して変数を設定すると==演算子でエラーになる時がある
TypeScriptが以下の挙動をする理由を教えてください。
TypeScriptのバージョンは2.2.1、Visual Studio Codeを使用しています。
var hoge:boolean = true;
var fuga = hoge==false ? 123 : 456;
このコードだとhoge==false
の部分がエラー
error TS2365: Operator '==' cannot be applied to types 'true' and
'false'.
になりますが、
var hoge:boolean;
hoge = true;
var fuga = hoge==false ? 123 : 456;
このコードのように変数の宣言と代入を別のところで行うとhoge==false
の部分がエラーに
なりません。
この違いはどうして起こるのでしょうか?