La "diffusion" est différente de la conversion. Dans ce cas, window.location.hash
convertira 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_number
est null
ou undefined
. Alors que page_number.toString()
et page_number.toLocaleString()
lancera quand page_number
est null
ou 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 string
cast indiquent au compilateur TypeScript de traiter page_number
comme 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_number
estnull
cela miswindow.location.hash
à la chaîne *"null"
. (Je préfère une erreur: D).