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型を抜き取って、新しい型にする
export type Memo = {
id: string;
name: string;
content: string;
created_at: string;
updated_at: string;
};
export type MemoRequest = Omit<Memo, 'id' | 'created_at' | 'updated_at'>;
引用 :
TypeScriptのUtility Typesを理解して活用する - Qiita
【TypeScript】覚えておきたいUtility Types