"Casting" es diferente a la conversión. En este caso, window.location.hash
convertirá 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_number
es null
o undefined
. Mientras que page_number.toString()
y page_number.toLocaleString()
lanzará cuando page_number
sea null
o 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 string
emitir le dicen al compilador TypeScript que lo trate page_number
como 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_number
esnull
esto se estableceráwindow.location.hash
en * la cadena"null"
. (Prefiero un error: D).window.location.hash = <any>page_number;
String(page_number)
) en lugar de la conversión cuando desee utilizar cualquierString
método, comotoLowerCase()
.Solo utilícelo
toString
otoLocaleString
diría. Entonces:Estos arrojan un error si
page_number
esnull
oundefined
. Si no quiere que pueda elegir la solución adecuada para su situación:fuente
También se puede usar la siguiente sintaxis en mecanografiado. Tenga en cuenta la marca de retroceso "` "
fuente
window.location.hash es un
string
, así que haz esto:fuente
"La conversión del tipo 'número' a tipo 'cadena' puede ser un error porque ninguno de los tipos se superpone lo suficiente con el otro. Si esto fue intencional, primero convierta la expresión a 'desconocido'". -> Obtendrá este error si intenta escribir el número a cadena. Entonces, primero conviértalo a desconocido y luego a cadena.
fuente
Use el símbolo "+" para lanzar una cadena a un número.
fuente
+
se lanza al número