2013-02-08 2 views
18

У меня действительно простая проблема, я не могу добраться до , конвертировать простое логическое значение в строковое значение в TypeScript.Тип: Преобразование bool в строковое значение

Я просматривал документацию и не мог найти ничего полезного, и, конечно же, я попытался использовать метод toString(), но он, похоже, не реализован на bool.


Редактировать: У меня почти нет знаний JavaScript и пришел к TypeScript с фоном C#/Java.

+0

Это странно, родной JS 'Boolean' поддерживает [' toString'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean/toString). – JohnnyHK

+0

Кажется, что TypeScript определенно пропускает эту базовую реализацию. – Ucodia

ответ

32

Это либо ошибка в машинописном или решение экономного дизайн, но вы можете работать вокруг него с помощью:

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

Это признанная ошибка в TypeScript и, по-видимому, планируется зафиксировать в следующей версии (0.8.2) - http://typescript.codeplex.com/workitem/362 – Jon

+0

toString() определенно будет работать нормально с 2016 года (версии 1.6) –

+1

flag: boolean = Boolean ("true"); если вам нужно преобразовать в boolean из строки –

1

Один подход заключается в использовании троичной оператора:

myString = myBool? "true":"false"; 
Смежные вопросы