次の例では、この部分がコンパイルされないのはなぜですか?なぜこのコードはtypescriptでコンパイルされませんか?
"|| this.greeting != "test2"
"
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
setGreeting(g) {
this.greeting = g;
}
test() {
if(this.greeting != "test" || this.greeting != "test2"){
//this.greeting cound still be test3
}
}
}
インタプリタのバグのようですが、演算子を '&&'に変更すると、JavaScriptが生成されている途中でエラーが消えてしまいます。 –
typescriptがこれを選択してエラーにフラグを立てるのはすばらしいことですが、共通の基底を持つ2つのリテラル型に対して、 "Operatorは適用できません"というエラーを、より意味のあるメッセージに置き換えることができます。常に真実 "(または"真実ではないかもしれない) "であり、この疑問につながった混乱の種類を減らすことができます。 – Duncan