Menu
CoddyTech

Значения параметров по умолчанию

Часть раздела Введение в 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 внутри вашей функции.

challenge icon

Задание

Легко

Создайте функцию с именем 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


// Протестируйте функции и выведите результаты
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Введение в TypeScript

Потренируйтесь самостоятельно: Песочница TypeScript