Гравировка
Кузнец научился гравировать: имена, девизы — всё, что клиенты хотят видеть на своих вещах. У типа Order появился новый вид, "engrave", с текстом гравировки text, и первая гравировка уже есть в книге заказов. Гравировка стоит engravePrice золотых за каждый символ текста, поэтому КИРА для Киры стоит 12 золотых, а с её скидкой — 7.
Запустите программу и посмотрите, что скажет TypeScript. Если ваш код проверяет виды заказов с помощью проверки полноты, TypeScript теперь покажет каждое место, где гравировка ещё не обработана. Добавьте гравировку везде, а в конце выведите, сколько заказов каждого вида:
Бруно: ковка, Щит (бронза), цена 20 (новый клиент)
Кира: гравировка КИРА, Эльфийский лук, цена 7 (скидка 5)
Итого: 80
Ковок: 2, ремонтов: 1, заточек: 1, гравировок: 1Подсказка: считать заказы удобно в Record, ключи которого — виды заказов, так же как вы считали встречи в путешествии Киры в уроке «Моделирование данных».
Вот и весь проект. Ваша программа считает цены заказов нескольких видов, ищет клиентов, которых может не быть, читает свойства, которых может не быть, а когда в книге заказов появился новый вид заказа, TypeScript показал, где нужно изменить программу. В следующем уроке, «Обобщения», вы научитесь писать функции и типы, которые работают с любым типом, а TypeScript по-прежнему следит, какой это тип.
Задание
- 1
Добавьте гравировку в строки заказов и в итог.
- 2
В конце выведите, сколько заказов каждого вида.