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).window.location.hash = <any>page_number;
String(page_number)
) Plutôt que la coulée est nécessaire lorsque vous voulez utiliser desString
méthodes, commetoLowerCase()
.Utilisez simplement
toString
outoLocaleString
je dirais. Alors:Ceux-ci lancent une erreur si
page_number
estnull
ouundefined
. Si vous ne le souhaitez pas, vous pouvez choisir le correctif adapté à votre situation:la source
On peut également utiliser la syntaxe suivante en typographie. Notez le backtick "` "
la source
window.location.hash est un
string
, alors faites ceci:la source
"La conversion du type 'nombre' en type 'chaîne' peut être une erreur car aucun des deux types ne chevauche suffisamment l'autre. Si cela était intentionnel, convertissez d'abord l'expression en 'inconnu'." -> Vous obtiendrez cette erreur si vous essayez de taper le nombre en chaîne. Alors, convertissez-le d'abord en inconnu, puis en chaîne.
la source
Utilisez le symbole «+» pour convertir une chaîne en un nombre.
la source
+
lance au numéro