"Кастинг" відрізняється від конверсії. У цьому випадку window.location.hashбуде автоматично перетворено число в рядок. Але щоб уникнути помилки компіляції TypeScript, ви можете зробити перетворення рядків самостійно:
window.location.hash = ""+page_number;
window.location.hash = String(page_number);
Ці перетворення ідеально підходять, якщо ви не хочете, щоб помилка була видалена, коли page_numberє nullабо undefined. Тоді як page_number.toString()і page_number.toLocaleString()кинеш, коли page_numberє nullчи undefined.
Коли вам потрібно лише передати, а не конвертувати, це те, як передати рядок у TypeScript:
window.location.hash = <string>page_number;
// or
window.location.hash = page_number as string;
<string>Або as stringвідлиті анотації сказати компілятор транскрипта ласощі page_numberу вигляді рядка під час компіляції; він не перетворюється під час виконання.
Однак компілятор поскаржиться, що ви не можете призначити номер рядку. Спочатку вам слід буде подати заявку <any>, а потім <string>:
window.location.hash = <string><any>page_number;
// or
window.location.hash = page_number as any as string;
Тож простіше просто перетворити, який обробляє тип під час виконання та час компіляції:
window.location.hash = String(page_number);
(Дякуємо @RuslanPolutsygan за вирішення проблеми кастингу рядків із номером.)
page_numberєnullце буде встановленоwindow.location.hashна * рядок"null". (Я вважаю за краще помилку: D).