TypeScript: Convert a bool to string value

CastingType ConversionTypescript

Casting Problem Overview


I have a really simple issue, I can't get to convert a simple boolean to a string value in TypeScript.

I have been roaming through documentation and I could not find anything helpful. Of course I tried to use the toString() method but it does not seem to be implemented on bool.


Edit: I have almost no JavaScript knowledge and came to TypeScript with a C#/Java background.

Casting Solutions


Solution 1 - Casting

This is either a bug in TypeScript or a concious design decision, but you can work around it using:

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

In JavaScript booleans override the toString method, which is available on any Object (pretty much everything in JavaScript inherits from Object), so...

var myString: string = myBool.toString();

... should probably be valid.

There is also another work around for this, but I personally find it a bit nasty:

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

Solution 2 - Casting

For those looking for an alternative, another way to go about this is to use a template literal like the following:

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

The real strength in this comes if you don't know for sure that you are getting a boolean value. Although in this question we know it is a boolean, thats not always the case, even in TypeScript(if not fully taken advantage of).

Solution 3 - Casting

One approach is to use the Ternary operator:

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

Solution 4 - Casting

This if you have to handle null values too:

stringVar = boolVar===null? "null" : (boolVar?"true":"false");

Solution 5 - Casting

return Boolean(b) ? 'true':'false'

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionUcodiaView Question on Stackoverflow
Solution 1 - CastingFentonView Answer on Stackoverflow
Solution 2 - CastingJon BlackView Answer on Stackoverflow
Solution 3 - CastingTolgaView Answer on Stackoverflow
Solution 4 - CastingLuca C.View Answer on Stackoverflow
Solution 5 - Castingpriya veruva55View Answer on Stackoverflow