„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).