"Casting" berbeda dari konversi. Dalam hal ini, window.location.hashakan secara otomatis mengkonversi angka menjadi string. Tetapi untuk menghindari kesalahan kompilasi TypeScript, Anda dapat melakukan konversi string sendiri:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Konversi ini sangat ideal jika Anda tidak ingin kesalahan untuk dilempar saat page_numberini nullatau undefined. Sedangkan page_number.toString()dan page_number.toLocaleString()akan melemparkan saat page_numberini nullatau undefined.
Saat Anda hanya perlu melakukan cast, bukan convert, ini adalah cara cast ke string di TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
The <string>atau as stringpenjelasan cor memberitahu compiler naskah untuk memperlakukan page_numbersebagai string pada waktu kompilasi; itu tidak mengkonversi pada saat dijalankan.
Namun, kompiler akan mengeluh bahwa Anda tidak dapat menetapkan nomor ke string. Anda harus terlebih dahulu dilemparkan ke <any>, kemudian ke <string>:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Jadi lebih mudah untuk hanya mengonversi, yang menangani jenis pada waktu berjalan dan waktu kompilasi:
window.location.hash = String(page_number);
(Terima kasih kepada @RuslanPolutsygan karena menangkap masalah casting string-number.)
page_numberadalahnullini akan mengaturwindow.location.hashuntuk * string"null". (Saya lebih suka kesalahan: D).