首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在TypeScript中将数字转换为字符串

在TypeScript中将数字转换为字符串
EN

Stack Overflow用户
提问于 2015-09-14 05:15:49
回答 6查看 397.5K关注 0票数 233

在Typescript中从数字转换为字符串的最佳方法(如果有)是什么?

代码语言:javascript
复制
var page_number:number = 3;
window.location.hash = page_number; 

在这种情况下,编译器抛出错误:

类型“number”不能赋值给类型“string”

因为location.hash是一个字符串。

代码语言:javascript
复制
window.location.hash = ""+page_number; //casting using "" literal
window.location.hash = String(number); //casting creating using the String() function

那么哪种方法更好呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-09-16 19:43:15

“强制转换”不同于转换。在这种情况下,window.location.hash会自动将数字转换为字符串。但是为了避免TypeScript编译错误,您可以自己进行字符串转换:

代码语言:javascript
复制
window.location.hash = ""+page_number; 
window.location.hash = String(page_number); 

如果您不希望在page_numbernullundefined时抛出错误,则这些转换是理想的。而page_number.toString()page_number.toLocaleString()将在page_numbernullundefined时抛出。

当您只需要转换,而不是转换时,下面是在TypeScript中转换为字符串的方法:

代码语言:javascript
复制
window.location.hash = <string>page_number; 
// or 
window.location.hash = page_number as string;

<string>as string强制转换注释告诉TypeScript编译器在编译时将page_number视为字符串;它不会在运行时进行转换。

然而,编译器会抱怨你不能给一个字符串赋值。您必须首先转换为<any>,然后转换为<string>

代码语言:javascript
复制
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;

因此,只进行转换更容易,它在运行时和编译时处理类型:

代码语言:javascript
复制
window.location.hash = String(page_number); 

(感谢@RuslanPolutsygan捕获了字符串编号转换问题。)

票数 386
EN

Stack Overflow用户

发布于 2015-09-14 05:32:22

利用toString()toLocaleString(),例如:

代码语言:javascript
复制
var page_number:number = 3;
window.location.hash = page_number.toLocaleString();

如果page_numbernullundefined,则会抛出错误。如果您不想这样做,您可以选择适合您的情况的修复程序:

代码语言:javascript
复制
// 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();
票数 36
EN

Stack Overflow用户

发布于 2018-09-23 04:57:33

在typescript中也可以使用以下语法。注意反引号“`”

代码语言:javascript
复制
window.location.hash = `${page_number}`
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32554624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档