"Đúc" khác với chuyển đổi. Trong trường hợp này, window.location.hashsẽ 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_numberlà nullhay undefined. Trong khi đó page_number.toString()và page_number.toLocaleString()sẽ ném khi page_numberlà nullhoặ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 stringtruyền chú thích cho trình biên dịch TypeScript xử lý page_numbernhư 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_numberlànullnày sẽ thiết lậpwindow.location.hashđể * chuỗi"null". (Tôi muốn có một lỗi: D).