Typescript の 型をいい感じで変換できるのが、ユーティリティータイプです。
https://www.typescriptlang.org/docs/handbook/utility-types.html
Pick<Type, Keys>: あるTypeの一部を取り出して新しい型にする
Omit<Type, Keys>: あるTypeの一部を削除して新しい型にする
Partial<Type>: あるTypeの全てのメンバをオプショナルにして新しい型にする
Required<Type>: あるTypeの全てのメンバを必須にして新しい型にする
Parameters<Type>: Type(関数の引数)から型を作成する
ReturnType<Type>: 関数の返り値の型で型を作成
Readonly<Type>: あるTypeReadOnlyな型にする
Record<Keys,Type>: 型を組み合わせてオブジェクトの型を作成
Exclude<Type, ExcludedUnion>: Typeの中から指定したUnion型を取り除いて、新しい型にする
Extract<Type, Union>: Typeの中から指定したUnion型を抜き取って、新しい型にする
引用 :
TypeScriptのUtility Typesを理解して活用する - Qiita
【TypeScript】覚えておきたいUtility Types