我有一个非常简单的问题,我无法在 TypeScript 中将简单的布尔值转换为字符串值。
我一直在浏览文档,但找不到任何有用的东西。当然,我尝试使用该toString()
方法,但它似乎没有在 bool 上实现。
编辑:我几乎没有 JavaScript 知识,并以 C#/Java 背景来到 TypeScript。
我有一个非常简单的问题,我无法在 TypeScript 中将简单的布尔值转换为字符串值。
我一直在浏览文档,但找不到任何有用的东西。当然,我尝试使用该toString()
方法,但它似乎没有在 bool 上实现。
编辑:我几乎没有 JavaScript 知识,并以 C#/Java 背景来到 TypeScript。
这要么是 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);
对于那些寻找替代方案的人来说,另一种方法是使用如下模板文字:
const booleanVal = true;
const stringBoolean = `${booleanVal}`;
如果您不确定自己获得的是布尔值,那么这方面的真正优势就来了。尽管在这个问题中我们知道它是一个布尔值,但情况并非总是如此,即使在 TypeScript 中(如果没有充分利用)。
一种方法是使用三元运算符:
myString = myBool? "true":"false";
如果您也必须处理空值,请执行以下操作:
stringVar = boolVar===null? "null" : (boolVar?"true":"false");
return Boolean(b) ? 'true':'false'