> Использовал ли ты mapped types в TypeScript (TypeScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Арго
Стек: TypeScript
> Пример ответа
Да, я активно использую mapped types. Это мощный инструмент для трансформации существующих типов без их дублирования. Например, чтобы сделать все поля объекта опциональными или только для чтения:
TYPESCRIPTtype Partial<T> = { [P in keyof T]?: T[P] };type Readonly<T> = { readonly [P in keyof T]: T[P] };
На практике часто применяю для создания типов на основе API-ответов. Допустим, есть User из бэкенда, а для фронта нужен UserForm без id и с изменёнными типами полей:
TYPESCRIPTtype User = { id: number; name: string; email: string; role: 'admin' | 'user' };type UserForm = { [K in Exclude<keyof User, 'id'>]: User[K] };// { name: string; email: string; role: 'admin' | 'user' }
Также использую с условными типами - например, чтобы сделать все поля nullable для форм с валидацией:
TYPESCRIPTtype Nullable<T> = { [P in keyof T]: T[P] | null };
Это сокращает код, улучшает типовую безопасность и упрощает рефакторинг.
> Похожие задачи по frontend
Как типизировать компонент и пропсы в TypeScript?
Используешь ли условные типы (conditional types) в TypeScript
Для чего используется infer в TypeScript
Как определить тип переменной через ReturnType в TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью