
- Главная
- Каталог
- Интернет технологии
- Вёрстка сайтов | HTML, CSS, JS
Статистика канала
id: number
name: string
email: string
}{}
Нужно создать тип UpdateUser, который:
• делает все поля необязательными
• но поле id остаётся обязательным
Результат должен быть таким:
id: number
name?: string
email?: string
}{}
Условие:
Нельзя писать тип вручную.
Нужно использовать утилиты типов TypeScript.
Подсказка:
используй Partial и пересечение типов &
Почему эти задачи полезны:
1. Они встречаются в реальных проектах
например при работе с API или формами
2. Они учат использовать ключевые инструменты TypeScript
keyof, Partial, пересечение типов
3. Это уровень middle-разработчика
не синтаксис, а мышление типами
#домашкаТы тоже можешь получить оффер в компанию, в которой тебя будут ценить и хорошо платить.👋 Меня зовут Тихон, привет! Я — действующий Frontend-разработчик и ментор. Я за руку довожу до оффера на хорошую позицию в Big Tech и сопровождаю на испытательном сроке. В своем канале: 👉Объясняю, как проходить HR-фильтр и превращать отклики в реальные приглашения 👉Помогаю найти мотивацию, борюсь убеждениями, которые мешают развиваться 👉На примерах объясняю, как проходить собеседования, включая техничку 👉Разбираю резюме и делюсь лайфхаками, например как аккуратно “пинговать” рекрутеров А еще регулярно публикую полезные материалы: ▪️Задачи, на которых валяться кандидаты ▪️База по микрофронтам ▪️Подборка из 100+ каналов с вакансиями для разработчиков ▪️100 вопросов, которые точно помогут тебе на собеседовании ▪️Чек лист проверки своего резюме А еще у меня множество успешных кейсов и трогательных отзывов, найти их можно в канале. Реклама, erid: 2W5zFGqHStH ИП Галактионов Тихон Витальевич, ИНН 771618975809
name: string
isAdmin: boolean
}{}
Теперь этот тип можно использовать в любом месте кода:
```const user: User = {
name: 'Tigran',
isAdmin: false
}
По сути, type работает похоже на interface, когда речь идёт об объектах.
Но у type есть возможности, которых нет у interface.
1. Можно создавать объединения типов (union types)
type Status = 'loading' | 'success' | 'error'
Теперь переменная может принимать только одно из этих значений:
let status: Status
status = 'loading' // OK
status = 'done' // Ошибка
Это очень удобно для состояний, ролей, типов уведомлений и других фиксированных значений.
2. Можно объединять типы
type User = {
name: string
}
type Admin = {
permissions: string[]
}
type AdminUser = User & Admin
Здесь используется оператор & — он объединяет типы.
const admin: AdminUser = {
name: 'Tigran',
permissions: ['read', 'write']
}
3. Можно описывать примитивные типы
type ID = string | number
Теперь ID может быть строкой или числом:
let userId: ID
userId = 123
userId = 'abc-123'
4. Можно описывать функции
type Calculate = (a: number, b: number) => number
И использовать:
const sum: Calculate = (a, b) => {
return a + b
}
Когда использовать type:
• когда нужны union или intersection типы
• когда нужно дать имя примитивному типу
• когда описываешь сложные типы данных
• когда работаешь с утилитами типов (Partial, Pick, Omit и т.д.)
Важно понимать:
как и interface, type существует только во время разработки.
В итоговый JavaScript он не попадает.
Частый вопрос:
в чём разница между type и interface?
Коротко:
• interface лучше подходит для описания объектов и их расширения
• type более гибкий и подходит для сложных типов
На практике в большинстве проектов используют оба.
Для закрепления:
попробуй описать тип Theme, который может принимать только значения 'light' или 'dark'.
#ts
en: 'Hello',
ru: 'Привет',
hy: 'Բարև'
}{}
Нужно создать тип Language, который будет автоматически содержать только ключи этого объекта.
То есть:
type Language = ??? // 'en' | 'ru' | 'hy'{}
И затем использовать его:
return translations[lang]
}
translate('en') // OK
translate('de') // Ошибка{}
Условие:
Тип должен обновляться автоматически, если добавить новый язык в объект.
Подсказка:
используй keyof
#домашкаОтзывы канала
всего 14 отзывов
- Добавлен: Сначала новые
- Добавлен: Сначала старые
- Оценка: По убыванию
- Оценка: По возрастанию
Каталог Телеграм-каналов для нативных размещений
Вёрстка сайтов | HTML, CSS, JS — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 4.6K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 6.4, количество отзывов – 14, со средней оценкой 5.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 909.09 ₽, а за 92 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий