TypeScript: 将 bool 转换为 string 值

我有一个非常简单的问题,我不能用 TypeScript 访问 将简单的布尔值转换为字符串值

我一直在浏览文档,但是找不到任何有用的东西。当然,我尝试使用 toString()方法,但它似乎没有在 bool 上实现。


编辑: 我几乎没有任何 JavaScript 知识,而且是以 C #/Java 背景来使用 TypeScript 的。

156628 次浏览

这要么是 TypeScript 中的一个 bug,要么是一个有意识的设计决策,但是你可以使用以下方法来解决它:

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();

应该是有效的。

还有另外一种解决办法,但我个人觉得有点讨厌:

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

一种方法是使用三元运算符:

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

如果你也需要处理空值:

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

对于那些寻找替代品的人来说,另一种方法是像下面这样使用 template literal:

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

如果你不确定你得到的是一个布尔值,那么这里真正的优势就来了。虽然在这个问题中,我们知道它是一个布尔值,但即使在 TypeScript 中(如果没有充分利用的话) ,情况也并非总是如此。

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