"Casting" berbeda dari konversi. Dalam hal ini, window.location.hash
akan 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_number
ini null
atau undefined
. Sedangkan page_number.toString()
dan page_number.toLocaleString()
akan melemparkan saat page_number
ini null
atau 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 string
penjelasan cor memberitahu compiler naskah untuk memperlakukan page_number
sebagai 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_number
adalahnull
ini akan mengaturwindow.location.hash
untuk * string"null"
. (Saya lebih suka kesalahan: D).window.location.hash = <any>page_number;
String(page_number)
) Daripada casting diperlukan ketika Anda ingin menggunakanString
metode apa pun , sepertitoLowerCase()
.Gunakan saja
toString
atautoLocaleString
saya katakan. Begitu:Ini melemparkan kesalahan jika
page_number
ininull
atauundefined
. Jika tidak ingin, Anda dapat memilih perbaikan yang sesuai dengan situasi Anda:sumber
Anda juga dapat menggunakan sintaks berikut dalam naskah. Perhatikan backtick "` "
sumber
window.location.hash adalah
string
, jadi lakukan ini:sumber
"Konversi tipe 'angka' ke tipe 'string' mungkin merupakan kesalahan karena tidak ada tipe yang cukup tumpang tindih dengan yang lain. Jika ini disengaja, ubah ekspresi menjadi 'tidak dikenal' terlebih dahulu." -> Anda akan mendapatkan kesalahan ini jika Anda mencoba mengetikkan nomor ramalan ke string. Jadi, pertama konversikan ke tidak dikenal dan kemudian ke string.
sumber
Gunakan simbol "+" untuk memberikan string ke angka.
sumber
+
dilemparkan ke nomor