"Đúc" khác với chuyển đổi. Trong trường hợp này, window.location.hash
sẽ tự động chuyển đổi một số thành một chuỗi. Nhưng để tránh lỗi biên dịch TypeScript, bạn có thể tự thực hiện chuyển đổi chuỗi:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Những chuyển đổi rất lý tưởng nếu bạn không muốn một lỗi được ném khi page_number
là null
hay undefined
. Trong khi đó page_number.toString()
và page_number.toLocaleString()
sẽ ném khi page_number
là null
hoặc undefined
.
Khi bạn chỉ cần truyền, không chuyển đổi, đây là cách chuyển thành chuỗi trong TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
Các chú thích <string>
hoặc as string
truyền chú thích cho trình biên dịch TypeScript xử lý page_number
như một chuỗi tại thời gian biên dịch; nó không chuyển đổi trong thời gian chạy.
Tuy nhiên, trình biên dịch sẽ phàn nàn rằng bạn không thể gán một số cho một chuỗi. Trước tiên <any>
, bạn phải chọn , sau đó <string>
:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Vì vậy, dễ dàng hơn để chuyển đổi, xử lý loại trong thời gian chạy và biên dịch thời gian:
window.location.hash = String(page_number);
(Cảm ơn @RuslanPolutsygan vì đã nắm bắt được vấn đề truyền số chuỗi.)
page_number
lànull
này sẽ thiết lậpwindow.location.hash
để * chuỗi"null"
. (Tôi muốn có một lỗi: D).