2013-02-08 13 views
18

Ich habe ein wirklich einfaches Problem, ich kann nicht konvertieren einen einfachen Boolean zu einem String-Wert in TypeScript.TypeScript: Konvertiere einen Bool in einen String Wert

Ich habe durch Dokumentation Roaming und ich konnte nichts hilfreich finden und natürlich habe ich versucht, die toString() Methode zu verwenden, aber es scheint nicht auf bool implementiert werden.

Edit: Ich habe fast keine JavaScript-Kenntnisse und kam zu TypeScript mit einem C#/Java-Hintergrund.

+0

Das ungerade ist, die native JS 'Boolean' unterstützt [' toString'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean/toString). – JohnnyHK

+0

Es scheint, dass TypeScript definitiv diese grundlegende Implementierung vermisst. – Ucodia

Antwort

32

Dies ist entweder ein Fehler in Typoskript oder eine concious Design-Entscheidung, aber Sie können mit drum herum arbeiten:

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

In JavaScript booleans überschreiben die toString Methode, die auf jedes Object (so ziemlich alles vorhanden ist in JavaScript von Object) erbt, so ...

var myString: string = myBool.toString(); 

... soll wohl gültig sein.

Es gibt auch eine andere Arbeit um für diese, aber ich persönlich ein bisschen finden fies:

var myBool: bool = true; 
var myString: string = <string><any> myBool; 
alert(myString); 
+1

Dies ist ein anerkannter Fehler in TypeScript und soll in der nächsten Version behoben werden (0.8.2) - http://typescript.codeplex.com/workitem/362 – Jon

+0

toString() wird definitiv funktionieren ab 2016 (Versionen 1.6) –

+1

Flag: boolean = Boolean ("true"); wenn Sie von String in Boolean konvertieren müssen –

1

Ein Ansatz ist es, den ternären Operator zu verwenden:

myString = myBool? "true":"false"; 
Verwandte Themen