Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
Тест проверяет тип первого параметра через expectTypeOf(greet).parameter(0), и теперь это string.
Пока стоял неявный any, все три вызова компилировались одинаково успешно, а падало бы уже в рантайме или, что хуже, не падало вовсе: "Привет, " + 42 даёт вполне валидную строку "Привет, 42", просто бессмысленную.
Обрати внимание, что после ) ничего не добавлено. Тип результата TypeScript выводит сам:
Поэтому и message получает тип string без единой аннотации. Явно указывать возвращаемый тип имеет смысл, когда хочется зафиксировать контракт функции и ловить ошибку в самой функции, а не в месте вызова. Про это следующее задание.
Аннотируй входы, доверяй выводу на выходах. Параметры функций и публичные границы модуля размечай явно, а локальные переменные оставляй компилятору: лишние аннотации только шумят.