Skip to main content

Преобразование типов

Типы относящиеся к одной категории так же как и различную валюту можно конвертировать друг в друга. Преобразование типов (type conversion, typecasting) — это процесс заключающийся в преобразовании (конвертации) значения одного типа в значение другого типа.

Преобразование типов делятся на явные и неявные преобразования.

Неявные преобразования

Неявные преобразования не требуют никаких языковых конструкций и не приводят к утрате данных. Примером неявного преобразования может служить преобразование значения типа int в тип double. Являясь 64-битным вещественным типом, double может хранить любое значение 32-битного целочисленного типа int.

inttodouble

Как показано на изображении выше, преобразование int в double не приводит к потере данных, так как 32-битное значение умещается в 64 битах.

Явные преобразования

Явные преобразования, которые для ясности часто называют приведением типов, происходят при участии разработчика и требуют указания языковых конструкций, называемых операторами приведения. Приведение типов требуется тогда, когда в процессе преобразования данные могут быть утрачены или по каким-то причинам процесс может завершиться ошибкой. Самым простым примером явного преобразования служит преобразование типа double, используемого для хранения 64-битных значений с плавающей запятой, к целочисленному типу int.

doubletoint

Примеры

TypeScript предоставляет встроенные функции для выполнения преобразования типов.

Можно преобразовать число в строку, используя конструктор строки, как показано ниже.

Пример

let number: number = 42
let numberAsString: string = String(number) //Перевод числа в строку

Также можно наоборот, перевести строку в число.

Пример

llet stringAsNumber: string = '42'
let number: number = Number(stringAsNumber)

console.log(number)

Вопросы

Question

Преобразование типов(typecasting) - это ...

  1. Процесс конвертации значения одного типа в значение другого типа
  2. Изменение значения числа
  3. Изменение знака числа

Требуют ли неявные преобразование каких либо языковых конструкций?

  1. Да
  2. Нет

Теряются ли данные при неявном преобразовании?

  1. Да
  2. Нет

Где используются операторы приведения?

  1. В неявных преобразованиях
  2. В явных преобразованиях
  3. В обоих случаях.

Ссылки:

  1. Metanit
  2. Xsltdev

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Philipp Dvinyaninov


Dmitriy Vasilev

💵

EnglishMoji!