在TypeScript中将数字转换为字符串
Casting a number to a string in TypeScript
在Typescript中从数字到字符串的最佳方式(如果有的话)是什么?
var page_number:number = 3;
window.location.hash = page_number;
在这种情况下,编译器抛出错误:
类型'number'不能赋值给类型'string'
因为location.hash
是字符串
window.location.hash = ""+page_number; //casting using "" literal
window.location.hash = String(number); //casting creating using the String() function
那么哪种方法更好呢?
" cast "不同于" conversion "。在这种情况下,window.location.hash
将自动将数字转换为字符串。但是为了避免TypeScript编译错误,你可以自己做字符串转换:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
如果您不希望在page_number
为null
或undefined
时抛出错误,那么这些转换是理想的。当page_number
为null
或undefined
时,page_number.toString()
和page_number.toLocaleString()
会抛出异常。
当你只需要强制转换而不需要转换时,下面是在TypeScript中强制转换成字符串的方法:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
<string>
或as string
强制转换注释告诉TypeScript编译器在编译时将page_number
视为字符串;它不会在运行时进行转换。
但是,编译器会提示你不能将数字赋值给字符串。你必须先转换到<any>
,然后再转换到<string>
:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
所以转换更容易,它在运行时和编译时处理类型:
window.location.hash = String(page_number);
(感谢@RuslanPolutsygan捕获字符串编号转换问题)
利用toString()
或toLocaleString()
,例如:
var page_number:number = 3;
window.location.hash = page_number.toLocaleString();
如果page_number
是null
或undefined
,则抛出错误。如果您不希望这样,您可以选择适合您的情况的修复:
// Fix 1:
window.location.hash = (page_number || 1).toLocaleString();
// Fix 2a:
window.location.hash = !page_number ? "1" page_number.toLocaleString();
// Fix 2b (allows page_number to be zero):
window.location.hash = (page_number !== 0 && !page_number) ? "1" page_number.toLocaleString();
还可以在typescript中使用以下语法。
window.location.hash = `${page_number}`
这是一些简短的方法
any_type = "" + any_type;
any_type = String(any_type);
any_type = `${any_type}`;
window.location。哈希值是string
,所以这样做:
var page_number: number = 3;
window.location.hash = String(page_number);
直接使用:page_number?.toString()
最简单的方法:
var num = 3; var str =`${num}`;
const page_number = 3;
window.location。哈希= page_number作为字符串;//错误
"类型'number'转换为类型'string'可能是错误的,因为两种类型都没有充分重叠。如果这是故意的,请先将表达式转换为"unknown"。→如果尝试将number类型转换为string,将得到此错误。因此,首先将其转换为unknown,然后再转换为string。
window.location。哈希= (page_number未知)作为字符串;//正确方法
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 将JSON插入MongoDB中,自动转换字符串中的日期
- 以点表示法转换字符串以获取对象引用
- 在 JavaScript 中转换字符串 11/28/2014 11:00 AM 到现在
- 为什么在主干的字符串数组中转换字符串数组
- 如何简单地转换字符串
- AngularJS如何转换字符串“;yyyyMMdd”;迄今为止
- 如何防止htmlspecialchar(PHP)转换字符串中的整数
- 刷新Aurelia中的i18n转换字符串插值
- 发布时禁用转换字符串
- 转换字符串货币
- 在javascript ajax调用中转换字符串到数组
- 转换字符串包含时间到24小时的时间,我可以做数学与- jQuery
- IE javascript引擎在转换字符串到日期时呈现NaN
- 如何转换字符串“a,b,c,d……”成a.b (c, d . .);来执行
- 如何在javascript中转换字符串到日期格式
- 如何在嵌套数组中转换字符串数组
- 在javascript中转换字符串日期
- 转换字符串在印度格式的javascript
- Javascript转换字符串到数组的对象