“转换”不同于转换。在这种情况下,将自动将数字转换为字符串。但是为了避免 TypeScript 编译错误,您可以自己执行字符串转换:window.location.hash
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
如果您不希望在 is 或 时引发错误,则这些转换是理想的选择。而 和 将抛出时 是 或 。page_number
null
undefined
page_number.toString()
page_number.toLocaleString()
page_number
null
undefined
当您只需要强制转换,而不需要转换时,这就是在TypeScript中强制转换为字符串的方法:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
或强制转换的注释告诉 TypeScript 编译器在编译时将其视为字符串;它不会在运行时进行转换。<string>
as string
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捕获字符串号转换问题。