"Casting" es diferente a la conversión. En este caso, window.location.hashconvertirá automáticamente un número en una cadena. Pero para evitar un error de compilación de TypeScript, puede hacer la conversión de la cadena usted mismo:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Estas conversiones son ideales si no desea que se produzca un error cuando page_numberes nullo undefined. Mientras que page_number.toString()y page_number.toLocaleString()lanzará cuando page_numbersea nullo undefined.
Cuando solo necesita convertir, no convertir, esta es la forma de convertir a una cadena en TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
Las anotaciones <string>o as stringemitir le dicen al compilador TypeScript que lo trate page_numbercomo una cadena en tiempo de compilación; no se convierte en tiempo de ejecución.
Sin embargo, el compilador se quejará de que no puede asignar un número a una cadena. Tendría que lanzar primero a <any>, luego a <string>:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Por lo tanto, es más fácil simplemente convertir, que maneja el tipo en tiempo de ejecución y tiempo de compilación:
window.location.hash = String(page_number);
(Gracias a @RuslanPolutsygan por detectar el problema de transmisión del número de cadena).
page_numberesnullesto se estableceráwindow.location.hashen * la cadena"null". (Prefiero un error: D).