2013-02-08 38 views
18

Tôi có một vấn đề thực sự đơn giản, tôi không thể chuyển sang chuyển đổi boolean đơn giản thành giá trị chuỗi trong TypeScript.TypeScript: Chuyển đổi giá trị bool thành chuỗi

Tôi đã chuyển vùng tài liệu và tôi không thể tìm thấy bất kỳ điều gì hữu ích và dĩ nhiên tôi đã cố gắng sử dụng phương thức toString() nhưng dường như không được triển khai trên bool.


Chỉnh sửa: Tôi hầu như không có kiến ​​thức JavaScript và đã đến TypeScript với nền C#/Java.

+0

Đó là lẻ, các bản địa JS 'Boolean' hỗ trợ [' toString'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean/toString). – JohnnyHK

+0

Có vẻ như TypeScript chắc chắn đã bỏ lỡ việc triển khai cơ bản này. – Ucodia

Trả lời

32

Đây là hoặc là một lỗi trong nguyên cảo hoặc một quyết định thiết kế ý thức, nhưng bạn có thể làm việc xung quanh nó bằng cách sử:

var myBool: bool = true; 
var myString: string = String(myBool); 
alert(myString); 

Trong boolean JavaScript ghi đè lên các phương pháp toString, trong đó có sẵn trên bất kỳ Object (khá nhiều tất cả mọi thứ trong JavaScript kế thừa từ Object), vì vậy ...

var myString: string = myBool.toString(); 

... có lẽ phải hợp lệ.

Ngoài ra còn có công việc khác xung quanh cho điều này, nhưng cá nhân tôi thấy nó một chút khó chịu:

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

Đây là lỗi được xác nhận trong TypeScript và dường như được lên kế hoạch để sửa trong bản phát hành tiếp theo (0.8.2) - http://typescript.codeplex.com/workitem/362 – Jon

+0

toString() chắc chắn sẽ hoạt động tốt vào năm 2016 (phiên bản 1.6) –

+1

cờ: boolean = Boolean ("true"); nếu bạn cần chuyển đổi sang boolean từ chuỗi –

1

Một cách tiếp cận là sử dụng các nhà điều hành ternary:

myString = myBool? "true":"false"; 
Các vấn đề liên quan