Le moulage d'un nombre en une chaîne en caractères d'imprimerie
Quelle est la meilleure façon (si il y en a un) pour lancer à partir du numéro de chaîne en caractères d'imprimerie?
var page_number:number = 3;
window.location.hash = page_number;
Dans ce cas, le compilateur génère l'erreur:
De Type "nombre" n'est pas cessible de type 'string'
Parce que location.hash
est une chaîne de caractères.
window.location.hash = ""+page_number; //casting using "" literal
window.location.hash = String(number); //casting creating using the String() function
Alors, quelle méthode est la meilleure?
Vous devez vous connecter pour publier un commentaire.
"Casting" est différent de celui de la conversion. Dans ce cas,
window.location.hash
auto-convertir un nombre en chaîne. Mais pour éviter un Tapuscrit erreur de compilation, vous pouvez le faire à la chaîne de conversion vous-même:Ces conversions sont idéales si vous ne voulez pas d'une erreur lors de la
page_number
estnull
ouundefined
. Alors quepage_number.toString()
etpage_number.toLocaleString()
lèvera quandpage_number
estnull
ouundefined
.Quand vous avez seulement besoin de jeter, de ne pas convertir, c'est la manière de voter, à une chaîne de caractères en caractères d'imprimerie:
La
<string>
ouas string
fonte d'annotations dire le Tapuscrit compilateur de traiterpage_number
comme une chaîne de caractères au moment de la compilation; il ne convertit pas au moment de l'exécution.Cependant, le compilateur va se plaindre que vous ne pouvez pas attribuer un numéro à une chaîne. Vous devez d'abord jeté à
<any>
, puis à<string>
:Il est donc plus facile de les convertir, qui gère le type au moment de l'exécution et de la compilation:
(Merci à @RuslanPolutsygan pour la capture de la chaîne-nombre de fonderie.)
page_number
estnull
ce sera mis enwindow.location.hash
*la chaîne de"null"
. (Je préfère une erreur :D).window.location.hash = <any>page_number;
String(page_number)
) plutôt que casting est nécessaire lorsque vous voulez utiliser uneString
méthodes, comme latoLowerCase()
.Il suffit d'utiliser
toString
outoLocaleString
je dirais. Donc:Ces lever une erreur si
page_number
estnull
ouundefined
. Si vous ne voulez pas que vous pouvez choisir le correctif correspondant à votre situation:fenêtre.emplacement.de hachage est une
string
, donc cela:On peut aussi utiliser la syntaxe suivante en caractères d'imprimerie. Remarque le backtick " ` "
Utiliser le symbole "+" pour lancer une chaîne en nombre.
+
jette à nombre