2013-02-08 16 views
18

Mam naprawdę prosty problem, nie mogę uzyskać konwersji prostej wartości boolowskiej na wartość ciągu znaków w TypeScript.TypeScript: Konwertuj wartość bool na wartość ciągu znaków

Przeszukałem całą dokumentację i nie mogłem znaleźć niczego przydatnego i oczywiście spróbowałem użyć metody toString(), ale wydaje się, że nie zostało to zaimplementowane na Bool.


Edycja: Nie mam prawie żadnej wiedzy o JavaScript i dotarłem do TypeScript z tłem C#/Java.

+0

To dziwne rodzimą JS 'Boolean' obsługuje [' toString'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean/toString). – JohnnyHK

+0

Wygląda na to, że TypeScript zdecydowanie pomija tę podstawową implementację. – Ucodia

Odpowiedz

32

Jest to albo błąd w maszynopisie lub concious decyzja projektowa, ale można to obejść stosując:

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

W logicznych JavaScript zastąpić metodę toString, która jest dostępna na dowolnym Object (prawie wszystko w JavaScript dziedziczy po Object), więc ...

var myString: string = myBool.toString(); 

... prawdopodobnie powinien być ważny.

Jest też inna praca wokół tego, ale ja osobiście uważam to trochę paskudny:

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

Jest to uznany błąd w języku TypeScript i najwyraźniej planowane jest jego poprawienie w następnym wydaniu (0.8.2) - http://typescript.codeplex.com/workitem/362 – Jon

+0

toString() na pewno zadziała dobrze od 2016 roku (wersje 1.6) –

+1

flaga: boolean = Boolean ("true"); jeśli chcesz przekonwertować na boolean z ciągu –

1

Jednym ze sposobów jest użycie trójskładnikowych operatora:

myString = myBool? "true":"false"; 
Powiązane problemy