„Przesyłanie” różni się od konwersji. W takim przypadku window.location.hashautomatycznie 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_numberjest nulllub undefined. Natomiast page_number.toString()i page_number.toLocaleString()będzie rzucać, gdy page_numberjest nulllub 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 stringoddane adnotacje poinformować kompilator maszynopis traktować page_numberjako 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_numbertonullbędzie ustawionywindow.location.hashna * napisu"null". (Wolałbym błąd: D).