«Кастинг» отличается от конверсии. В этом случае 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).