"Transmitir" é diferente de conversão. Nesse caso, window.location.hashirá converter automaticamente um número em uma string. Mas, para evitar um erro de compilação TypeScript, você mesmo pode fazer a conversão de string:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Essas conversões são ideais se você não deseja que um erro seja gerado quando page_numberé nullou undefined. Considerando page_number.toString()e page_number.toLocaleString()jogará quando page_numberé nullou undefined.
Quando você só precisa converter, não converter, é como converter em uma string no TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
As anotações <string>ou as stringcast dizem ao compilador TypeScript para tratar page_numbercomo uma string no tempo de compilação; não converte em tempo de execução.
No entanto, o compilador reclamará que você não pode atribuir um número a uma string. Você precisaria primeiro converter para <any>, depois <string>:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Portanto, é mais fácil converter, que lida com o tipo em tempo de execução e tempo de compilação:
window.location.hash = String(page_number);
(Agradecemos a @RuslanPolutsygan por detectar o problema de transmissão do número da string.)
page_numberénullisto irá definirwindow.location.hashaté * a corda"null". (Eu preferiria um erro: D).