我有一个非常简单的问题,我无法在TypeScript中将简单的布尔值转换为字符串值。
我一直在漫游文档,我找不到任何有用的东西,当然我尝试使用toString()
方法,但它似乎没有在bool上实现。
编辑:我几乎没有JavaScript知识,并且使用C#/ Java背景来到TypeScript。
答案 0 :(得分:69)
这可能是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);
答案 1 :(得分:4)
一种方法是使用三元运算符:
myString = myBool? "true":"false";
答案 2 :(得分:3)
对于那些寻求替代方法的人,解决此问题的另一种方法是使用template literal,如下所示:
const booleanVal = true;
const stringBoolean = `${booleanVal}`;
如果您不确定是否要获取布尔值,那么真正的优势就在于此。尽管在这个问题中我们知道这是一个布尔值,但即使在TypeScript中(即使没有充分利用),也并非总是如此。
答案 3 :(得分:0)
如果您也必须处理空值,则此操作:
stringVar = boolVar===null? "null" : (boolVar?"true":"false");