Значения параметров по умолчанию
Часть раздела Введение в TypeScript путешествия по JavaScript на Coddy. Урок 26 из 73.
В то время как необязательные параметры позволяют вам выбирать, предоставлять ли значение, параметры по умолчанию развивают эту концепцию, автоматически предоставляя резервное значение, когда аргумент не передан. Это делает функции более удобными в использовании, сохраняя при этом типобезопасность.
Чтобы создать параметр по умолчанию, вы присваиваете значение непосредственно в сигнатуре функции, используя знак равенства. TypeScript автоматически выводит тип параметра из значения по умолчанию:
function greet(name: string, greeting = "Hello"): string {
return greeting + ", " + name;
}
function calculateArea(width: number, height = 10): number {
return width * height;
}В этих примерах greeting по умолчанию принимает значение "Hello" (выводится как string), а height по умолчанию принимает значение 10 (выводится как number). Когда вы вызываете greet("Alice"), она автоматически использует приветствие по умолчанию, но вы все равно можете переопределить его с помощью greet("Alice", "Good morning").
Параметры по умолчанию фактически являются необязательными — вам не нужно использовать синтаксис ?, так как значение по умолчанию гарантирует, что параметр всегда будет иметь значение. Этот подход чище, чем использование необязательных параметров, когда у вас есть подходящее значение по умолчанию, поскольку он избавляет от необходимости проверять наличие undefined внутри вашей функции.
Задание
ЛегкоСоздайте функцию с именем calculateTax, которая принимает два параметра: price типа number (обязательный) и rate типа number со значением по умолчанию 0.05. Функция должна возвращать сумму налога в виде числа с явным указанием типа возвращаемого значения.
Функция должна рассчитывать налог путем умножения цены на ставку.
Создайте еще одну функцию с именем formatGreeting, которая принимает два параметра: name типа string (обязательный) и timeOfDay типа string со значением по умолчанию "Hello". Функция должна возвращать строку с отформатированным приветствием с явным указанием типа возвращаемого значения.
Функция должна возвращать приветствие в формате: "[timeOfDay], [name]!"
Создайте третью функцию с именем calculateShipping, которая принимает три параметра: weight типа number (обязательный), distance типа number (обязательный) и expedited типа boolean со значением по умолчанию false. Функция должна возвращать стоимость доставки в виде числа с явным указанием типа возвращаемого значения.
Функция должна рассчитывать стоимость доставки по следующей формуле: (weight * 0.5) + (distance * 0.1). Если expedited имеет значение true, умножьте результат на 2.
Протестируйте свои функции, вызвав их со следующими значениями и выведя результаты на экран:
- Вызовите
calculateTaxс100(используя ставку по умолчанию) - Вызовите
calculateTaxс200и0.08 - Вызовите
formatGreetingс"Alice"(используя время суток по умолчанию) - Вызовите
formatGreetingс"Bob"и"Good morning" - Вызовите
calculateShippingс5и100(используя значение ускоренной доставки по умолчанию) - Вызовите
calculateShippingс3,50иtrue
Выведите каждый результат на отдельной строке в порядке, указанном выше.
Попробуйте сами
// TODO: Напишите свой код здесь
// Создайте функцию calculateTax
// Создайте функцию formatGreeting
// Создайте функцию calculateShipping
// Протестируйте функции и выведите результатыВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в TypeScript
1Начало работы с TS
Что такое TypeScript?Зачем использовать TypeScript?Ваш первый код на TypeScriptПроцесс компиляции и ошибкиИтоги: Введение в TS4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация стрелочных функцийТип возвращаемого значения 'void'Необязательные параметры с '?'Значения параметров по умолчаниюТипизация Rest-параметровОпределение типов функцийИтоги: Создание типизированных функций2Основные типы
Базовые типы: str, num, booleanТип 'any': лазейкаТип 'unknown'Работа с 'null' и 'undef'Вывод типов в действииЯвные аннотации типовИтоги: Практика по основным типам5Типы: псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения ('|')Работа с типами объединенияЛитеральные типыТипы пересечения ('&')Комбинирование псевдонимов типовИтоги: продвинутые комбинации типов3Структуры данных: массивы и кортежи
Типизированные массивыМодификатор 'readonly' для массивовЧто такое кортеж?Объявление кортежей и доступ к нимДеструктуризация кортежейКортежи readonlyМногомерные типизированные массивыОператор spread с массивамиИтоги: массивы и кортежиПотренируйтесь самостоятельно: Песочница TypeScript