La "diffusion" est différente de la conversion. Dans ce cas, window.location.hashconvertira automatiquement un nombre en chaîne. Mais pour éviter une erreur de compilation TypeScript, vous pouvez effectuer vous-même la conversion de chaîne:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Ces conversions sont idéales si vous ne souhaitez pas qu'une erreur soit générée lorsque page_numberest nullou undefined. Alors que page_number.toString()et page_number.toLocaleString()lancera quand page_numberest nullou undefined.
Lorsque vous avez seulement besoin de convertir, et non de convertir, voici comment convertir une chaîne dans TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
Les annotations <string>ou as stringcast indiquent au compilateur TypeScript de traiter page_numbercomme une chaîne au moment de la compilation; il ne convertit pas au moment de l'exécution.
Cependant, le compilateur se plaindra que vous ne pouvez pas attribuer un numéro à une chaîne. Vous devrez d'abord lancer <any>, puis vers <string>:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Il est donc plus facile de simplement convertir, qui gère le type au moment de l'exécution et à la compilation:
window.location.hash = String(page_number);
(Merci à @RuslanPolutsygan pour avoir attrapé le problème de conversion des numéros de chaîne.)
page_numberestnullcela miswindow.location.hashà la chaîne *"null". (Je préfère une erreur: D).