114 votes

TypeScript : Conversion d'un bool en chaîne de caractères

J'ai un problème très simple, je ne peux pas accéder à convertir un simple booléen en une valeur de type chaîne de caractères en TypeScript.

J'ai parcouru la documentation et je n'ai rien trouvé d'utile. Bien sûr, j'ai essayé d'utiliser le toString() mais elle ne semble pas être implémentée pour les bools.


Edit : Je n'ai pratiquement aucune connaissance de JavaScript et je suis venu à TypeScript avec une formation C#/Java.

163voto

Steve Fenton Points 55265

Il s'agit d'un bogue dans TypeScript ou d'une décision de conception consciente, mais vous pouvez le contourner en utilisant :

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

En JavaScript, les booléens remplacent le toString qui est disponible sur n'importe quel Object (à peu près tout en JavaScript hérite de Object ), donc...

var myString: string = myBool.toString();

... devrait probablement être valide.

Il existe également un autre moyen de contourner ce problème, mais je le trouve personnellement un peu désagréable :

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

32voto

Jon Black Points 71

Pour ceux qui recherchent une alternative, une autre façon de procéder est d'utiliser une modèle littéral comme les suivantes :

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

La véritable force de ce système réside dans le fait que vous n'êtes pas certain d'obtenir une valeur booléenne. Bien que dans cette question nous sachions qu'il s'agit d'un booléen, ce n'est pas toujours le cas, même en TypeScript (si l'on n'en tire pas pleinement parti).

19voto

Tolga Points 201

Une approche consiste à utiliser l'opérateur ternaire :

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

1voto

Luke Points 82

Ceci si vous devez également gérer les valeurs nulles :

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

1voto

priya veruva55 Points 11
return Boolean(b) ? 'true':'false'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X