Расскажи про utility types в TypeScript: какие использовал и для чего?
Answer from AI
sobes.tech AI
В TypeScript utility types — это встроенные типы, которые помогают трансформировать или комбинировать другие типы, упрощая работу с типами и повышая читаемость кода.
Часто используемые utility types:
-
Partial<T> — делает все свойства типа T необязательными. Полезно для обновления объектов, когда не все поля обязательны.
interface User { id: number; name: string; age: number; } const updateUser: Partial<User> = { name: "Новый имя" }; -
Required<T> — наоборот, делает все свойства обязательными.
-
Readonly<T> — делает все свойства только для чтения, предотвращая их изменение.
-
Pick<T, K> — выбирает из типа T только указанные свойства K.
-
Omit<T, K> — исключает из типа T указанные свойства K.
-
Record<K, T> — создает тип объекта с ключами K и значениями типа T.
-
Exclude<T, U> — исключает из типа T все типы, которые присутствуют в U.
-
Extract<T, U> — оставляет в T только те типы, которые есть в U.
-
NonNullable<T> — исключает null и undefined из типа T.
Использование utility types помогает писать более выразительный и безопасный код, избегая дублирования и ошибок при работе с типами.