Типы Утилит(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> - это утилитные типы для манипуляции строками, которые изменяют регистр строки в соответствии с их именем.