"Casting" è diverso dalla conversione. In questo caso, window.location.hash
converte automaticamente un numero in una stringa. Ma per evitare un errore di compilazione TypeScript, puoi eseguire tu stesso la conversione della stringa:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Queste conversioni sono ideali se non si desidera che venga generato un errore quando page_number
è null
o undefined
. Considerando che page_number.toString()
e page_number.toLocaleString()
lancerà quando page_number
è null
o undefined
.
Quando devi solo trasmettere, non convertire, ecco come eseguire il cast su una stringa in TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
Le annotazioni <string>
o as string
cast indicano al compilatore TypeScript di essere trattato page_number
come una stringa in fase di compilazione; non viene convertito in fase di esecuzione.
Tuttavia, il compilatore si lamenterà che non è possibile assegnare un numero a una stringa. Dovresti prima lanciare <any>
, poi a <string>
:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Quindi è più semplice convertire, che gestisce il tipo in fase di esecuzione e di compilazione:
window.location.hash = String(page_number);
(Grazie a @RuslanPolutsygan per aver risolto il problema del casting del numero di stringa.)
page_number
ènull
impostatowindow.location.hash
su * la stringa"null"
. (Preferirei un errore: D).