Типы Утилит(Utility Types)
Awaited<T> - это специальный тип, который может быть использован для обозначения типа, который будет возвращен из асинхронной функции.
Partial<T> - делает все свойства объекта типа T необязательными.
Required<T> - делает все свойства объекта типа T обязательными.
Readonly<T> - делает все свойства объекта типа T доступными только для чтения.
Record<Keys, Type> - создает тип, который является записью с ключами, определенными в первом параметре, и значениями типа, определенного во втором параметре.
Pick<T, K extends keyof T> - выбирает свойства объекта типа T с ключами, указанными в K.
Omit<T, K extends keyof T> - выбирает свойства объекта типа T, исключая те, которые указаны в K.
Exclude<UnionType, ExcludedMembers> - исключает определенные типы из объединенного типа.
Extract<Type, Union> - извлекает из типа Type только те типы, которые присутствуют в Union.
NonNullable<Type> - звлекает тип из Type, исключая null и undefined.
Parameters<Type> - извлекает типы аргументов функции Type.
ConstructorParameters<Type> - извлекает типы аргументов конструктора Type.
ReturnType<Type> - извлекает тип возвращаемого значения функции Type.
InstanceType<Type> - извлекает тип экземпляра класса Type.
ThisParameterType<Type> - извлекает тип this из функции Type.
OmitThisParameter<Type> - определяет функцию без типа this.
ThisType<Type> - добавляет тип this к функции Type.
Uppercase<StringType>, Lowercase<StringType>, Capitalize<StringType>, Uncapitalize<StringType> - это утилитные типы для манипуляции строками, которые изменяют регистр строки в соответствии с их именем.