web-dev-qa-db-ja.com

TypeScript:boolを文字列値に変換します

TypeScriptで単純なブール値を文字列値に変換するに到達することはできません。

私は文書をあちこち歩き回っていて、何も役に立たなかったので、もちろんtoString()メソッドを使おうとしましたが、boolには実装されていないようです。


編集:JavaScriptの知識がほとんどなく、C#/ JavaのバックグラウンドでTypeScriptを使いました。

47
Ucodia

これは、TypeScriptのバグまたは設計上の慎重な決定のいずれかですが、次の方法で回避できます。

var myBool: bool = true;
var myString: string = String(myBool);
alert(myString);

JavaScriptでは、toStringメソッドでオーバーライドされるObjectメソッドをオーバーライドします(JavaScriptのほとんどすべてがObjectから継承します)。

var myString: string = myBool.toString();

...おそらく有効であるはずです。

これに関する別の回避策もありますが、個人的には少し厄介です:

var myBool: bool = true;
var myString: string = <string><any> myBool;
alert(myString);
75
Fenton

1つのアプローチは、Ternary演算子を使用することです。

myString = myBool? "true":"false";
6
Tolga

別の方法を探している人にとって、これを実行する別の方法は、次のような テンプレートリテラル を使用することです。

const booleanVal = true;
const stringBoolean = `${booleanVal}`;

これの本当の強さは、ブール値を取得していることが確実にわからない場合に発生します。この質問では、これがブール値であることがわかりますが、TypeScriptであっても(完全に活用されていない場合)、常にそうであるとは限りません。

4
Jon Black

これは、null値も処理する必要がある場合:

stringVar = boolVar===null? "null" : (boolVar?"true":"false");
0
Luca C.