Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
Значение по умолчанию делает параметр необязательным при вызове и одновременно гарантирует, что внутри функции в name всегда лежит строка.
Первый тест такой вариант прошёл бы, второй нет: он ждёт именно "Привет, гость". С ? тип параметра становится string | undefined, и обрабатывать пустое значение приходится вручную:
Работает, но многословнее ровно в том случае, для которого и придуманы значения по умолчанию.
Аннотацию можно даже опустить, тип выведется из значения по умолчанию:
Снаружи сигнатура выглядит как (name?: string) => string, а внутри name это string без undefined. Отсюда и удобство: проверка не нужна.
Только при undefined, включая случай, когда аргумент не передан вовсе:
Это поведение самого JavaScript, TypeScript его не меняет.
Параметр со значением по умолчанию обычно ставят последним. Иначе, чтобы добраться до следующего аргумента, придётся явно передавать undefined: