"Casting" è diverso dalla conversione. In questo caso, window.location.hashconverte 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è nullo undefined. Considerando che page_number.toString()e page_number.toLocaleString()lancerà quando page_numberè nullo 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 stringcast indicano al compilatore TypeScript di essere trattato page_numbercome 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ènullimpostatowindow.location.hashsu * la stringa"null". (Preferirei un errore: D).