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