TypeScript:将布尔值转换为字符串值

Posted

技术标签:

【中文标题】TypeScript:将布尔值转换为字符串值【英文标题】:TypeScript: Convert a bool to string value 【发布时间】:2013-01-24 08:33:54 【问题描述】:

我有一个非常简单的问题,我无法在 TypeScript 中将简单的布尔值转换为字符串值

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


编辑:我几乎没有 javascript 知识,并以 C#/Java 背景来到 TypeScript。

【问题讨论】:

奇怪的是,原生JSBoolean支持toString 看来TypeScript肯定漏掉了这个基本的实现。 【参考方案1】:

这要么是 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);

【讨论】:

这是 TypeScript 中公认的错误,显然计划在下一个版本 (0.8.2) 中修复 - typescript.codeplex.com/workitem/362 toString() 从 2016 年开始肯定可以正常工作(版本 1.6) 标志:boolean = Boolean("true");如果您需要从字符串转换为布尔值 显然即使对于 TS 版本 2.9.0-dev.20180327 toString() 也绝对行不通!必须在这里使用@Fenton 的示例才能正常工作。奇怪但事实。【参考方案2】:

对于那些寻找替代方案的人,另一种方法是使用template literal,如下所示:

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

如果您不确定自己获得的是布尔值,那么这方面的真正优势就来了。尽管在这个问题中我们知道它是一个布尔值,但情况并非总是如此,即使在 TypeScript 中(如果没有充分利用)。

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

如果您也必须处理空值,请这样做:

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

【讨论】:

【参考方案5】:
return Boolean(b)?'true':'false'

【讨论】:

虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高​​答案的长期价值。您可以在帮助中心找到更多关于如何写好答案的信息:***.com/help/how-to-answer。祝你好运?

以上是关于TypeScript:将布尔值转换为字符串值的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 将字符串转换为布尔值

Python:将字符串列表转换为布尔值,其中布尔值以字符串形式存在[重复]

将 UITextField 文本值转换为布尔值

将字符串转换为布尔值[重复]

Ruby:如何将字符串转换为布尔值

如何使用javascript将字符串数组转换为布尔值? [复制]