Уроки модуля (1/2)
Примитивные типы и аннотации
TypeScript — это типизированная надстройка JavaScript, то есть он добавляет синтаксис статического типа поверх существующего JavaScript. Во время выполнения весь код TypeScript компилируется в чистый JavaScript, а типы полностью исчезают в процессе сборки.
Благодаря TypeScript вы можете обнаруживать ошибки до того, как код запустится в браузере, что делает процесс разработки более надежным, безопасным и масштабируемым.
Примитивные типы
TypeScript поддерживает стандартные примитивные типы JavaScript:
string: представляет последовательность символов (например,'Alice',"Hello").number: представляет числовые значения, как целые, так и десятичные (например,42,3.14).boolean: представляет значения истинности (trueилиfalse).nullиundefined: обозначают намеренное или непреднамеренное отсутствие значения.
const username: string = 'Alice';
const score: number = 100;
const isActive: boolean = true;Аннотации переменных и вывод
В TypeScript мы можем добавить аннотацию типа, используя двоеточие (:), за которым следует тип.
Если вы попытаетесь присвоить значение другого типа (например, присвоить строку age, определенную как number), компилятор TypeScript немедленно выдаст ошибку еще до запуска кода.
Опасность типа any
Тип any — это специальный аварийный люк, который сообщает TypeScript полностью отключить проверку типа для этой переменной.
let data: any = 42;
data = 'Hello'; // No error!
data.nonExistentMethod(); // No error at compile time, but it crashes at runtime!Использование any сводит на нет все преимущества безопасности использования TypeScript. Это считается плохой практикой, и ее почти всегда следует избегать в рабочем коде.
Аннотации функций и тип void
Мы можем аннотировать как параметры, так и возвращаемое значение функции:
function calculateTax(price: number, taxRate: number): number {
return price * taxRate;
}Если функция не возвращает никакого значения (например, она возвращает только console.log), ее тип возврата — void:
function logMessage(message: string): void {
console.log(message);
}Попробуйте сами
Упражнение 1. Типизированные переменные
Объявите три явно типизированные переменные: имя пользователя как строку со значением «Алиса», оценку как число со значением 100 и isActive как логическое значение со значением true. Не используйте любой тип.
Показать подсказку
Используйте синтаксис : строка, : число и : логическое значение после имени каждой переменной.
Решение доступно после 3 попыток
Упражнение 2. Функция приветствия
Создайте функцию с именем «приветствие», которая принимает имя параметра строкового типа и возвращает строку в формате «Hello», за которой следует имя. Явно укажите тип параметра и тип возвращаемого значения.
Показать подсказку
Объявите функцию как function Greeting(name: string): string { ... } и верните сообщение.
Решение доступно после 3 попыток
Упражнение 3: Преобразователь температуры
Объявите функцию с именем celsiusToFahrenheit, которая принимает параметр celsius типа Number и возвращает эквивалентную температуру в градусах Фаренгейта (число). Формула: Цельсий * 9/5 + 32. Явно укажите тип параметра и тип возвращаемого значения.
Показать подсказку
Умножьте значение Цельсия на 9, разделите на 5, прибавьте 32 и верните результат с типом возврата :number для функции.
Решение доступно после 3 попыток
Упражнение 4: Расчет скидки
Создайте функцию с именем CalculDiscount, которая принимает параметр цена с номером типа и параметр DiscountPercent с номером типа и возвращает окончательную цену со скидкой в виде числа. Явно укажите типы параметров и тип возвращаемого значения.
Показать подсказку
Вычтите процент скидки, разделенный на 100, из 1, а затем умножьте на цену. Обязательно аннотируйте параметры и возвращайте значение в виде числа.
Решение доступно после 3 попыток