Параметр со значением по умолчанию
Обязательный параметр нужно передавать всегда: вызов без него это ошибка компиляции.
Именно на это и жалуется код в задании:
Онлайн-редактор кода, разбор решения и отметки о прогрессе доступны после входа.
ВойтиСоздать аккаунт — бесплатноОбязательный параметр нужно передавать всегда: вызов без него это ошибка компиляции.
Именно на это и жалуется код в задании:
export function greet(name: string) {
return "Привет, " + name;
}
greet("Макс");
greet();Второй вызов подчёркнут: «Expected 1 arguments, but got 0». При этом сам сценарий разумный: если имя не передали, логично поздороваться с гостем.
У TypeScript есть два разных инструмента для необязательных параметров, и они дают разный результат.
Первый это ? после имени параметра: тогда параметр можно не передавать, а его тип становится string | undefined. Значение внутри функции будет undefined, и "Привет, " + name даст строку "Привет, undefined".
Второй это значение по умолчанию: обычный синтаксис JavaScript, который подставляет значение, когда аргумент не передан. Такой параметр тоже становится необязательным при вызове, но внутри функции его тип остаётся string.
Тесты здесь проверяют и то, и другое: что greet можно вызвать без аргументов и что результат такого вызова равен "Привет, гость".
Подробнее: Optional Parameters — справочник TypeScript.
Сделай так, чтобы greet() без аргументов компилировался и возвращал строку "Привет, гость", а greet("Макс") продолжал работать как раньше. Вызовы внизу файла менять не нужно.