«Кастинг» отличается от конверсии. В этом случае 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).window.location.hash = <any>page_number;
String(page_number)
) Вместо приведения необходимо, когда вы хотите использовать какие-либоString
методы, напримерtoLowerCase()
.Просто используйте
toString
илиtoLocaleString
я бы сказал. Так:Они выдают ошибку, если
page_number
естьnull
илиundefined
. Если вы не хотите, чтобы вы могли выбрать исправление, соответствующее вашей ситуации:источник
Можно также использовать следующий синтаксис в машинописи. Обратите внимание на обратную черту "` "
источник
window.location.hash - это
string
, так что сделайте это:источник
«Преобразование типа« число »в тип« строка »может быть ошибкой, поскольку ни один из типов не совпадает с другим. Если это было сделано намеренно, сначала преобразуйте выражение в« неизвестный ».» -> Вы получите эту ошибку, если попытаетесь ввести число в строку. Итак, сначала преобразуйте его в неизвестное, а затем в строку.
источник
Используйте символ «+», чтобы привести строку к числу.
источник
+
бросает к числу