„Przesyłanie” różni się od konwersji. W takim przypadku window.location.hash
automatycznie konwertuje liczbę na ciąg. Aby jednak uniknąć błędu kompilacji TypeScript, możesz samodzielnie wykonać konwersję ciągów:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Te konwersje są idealne, jeśli nie chcesz, aby błąd był generowany, gdy page_number
jest null
lub undefined
. Natomiast page_number.toString()
i page_number.toLocaleString()
będzie rzucać, gdy page_number
jest null
lub undefined
.
Gdy potrzebujesz tylko rzutować, a nie konwertować, oto jak rzutować na ciąg w TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
<string>
Lub as string
oddane adnotacje poinformować kompilator maszynopis traktować page_number
jako ciąg znaków w czasie kompilacji; nie konwertuje w czasie wykonywania.
Jednak kompilator będzie narzekał, że nie można przypisać liczby do ciągu. Najpierw musisz rzucić na <any>
, a potem <string>
:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Więc łatwiej jest po prostu przekonwertować, który obsługuje typ w czasie wykonywania i kompilacji:
window.location.hash = String(page_number);
(Podziękowania dla @RuslanPolutsygan za wychwycenie problemu z rzucaniem numerów ciągów).
page_number
tonull
będzie ustawionywindow.location.hash
na * napisu"null"
. (Wolałbym błąd: D).window.location.hash = <any>page_number;
String(page_number)
) Zamiast rzutowania jest konieczne, gdy chcesz użyć jakichkolwiekString
metod, takich jaktoLowerCase()
.Po prostu wykorzystaj
toString
albotoLocaleString
powiedziałbym. Więc:Te generują błąd, jeśli
page_number
jestnull
lubundefined
. Jeśli nie chcesz, możesz wybrać poprawkę odpowiednią do Twojej sytuacji:źródło
W maszynopisie można również użyć następującej składni. Zwróć uwagę na lewy znacznik „„ ”
źródło
window.location.hash to a
string
, więc zrób to:źródło
„Konwersja typu„ liczba ”na typ„ ciąg ”może być błędem, ponieważ żaden z typów nie nakłada się w wystarczającym stopniu na inny. Jeśli było to zamierzone, najpierw przekonwertuj wyrażenie na„ nieznane ”." -> Otrzymasz ten błąd, jeśli spróbujesz wpisać liczbę do łańcucha. Więc najpierw przekonwertuj go na nieznany, a następnie na ciąg.
źródło
Użyj symbolu „+”, aby rzucić ciąg na liczbę.
źródło
+