Задание: типизированная запись на консультацию
Одна модель данных, несколько функций и ясные ограничения типов.
На этой странице
Опишите данные заявки на консультацию и напишите функции, которые используют эту модель. Здесь проверяем работу TypeScript с уже полученными данными. Проверку пользовательского ввода через Zod вы увидите рядом с формами в Next-03.
Шаг 1. Опишите данные
Создайте тип Appointment со свойствами:
name– строка;email– строка;duration– число минут;online– логическое значение.
Создайте объект appointment этого типа. Намеренно попробуйте записать строку в duration, а затем удалите обязательное свойство. Посмотрите на сообщения редактора и верните правильные данные.
Шаг 2. Получите длительность
Напишите getAppointmentDuration, которая принимает Appointment и возвращает число минут. Укажите тип аргумента и результата.
Шаг 3. Сформируйте подпись
Напишите getAppointmentLabel, которая использует имя, результат getAppointmentDuration и проверку online. Она должна вернуть строку вроде Анна, онлайн, 30 минут или Анна, очно, 30 минут.
getAppointmentLabel({
name: "Анна",
email: "anna@example.com",
duration: 30,
online: true,
});
// "Анна, онлайн, 30 минут"Что приложить
- Тип и объект
Appointment. - Обе функции с явно указанными типами аргументов и результатов.
- Пример ошибки типов, которую редактор показывает до запуска, и исправленный вариант.
Критерий: обязательные поля и допустимые типы описаны один раз, а редактор показывает ошибку при неверном объекте.