Partial / Required / Readonly / Pick / Omit など組み込みの型変換
type User = { id: number; name: string; age: number };
type PartialUser = Partial<User>; // 全フィールドオプション化
type ROUser = Readonly<User>; // 全フィールドreadonly
type NameOnly = Pick<User,'id'|'name'>; // フィールドを選択
type NoAge = Omit<User,'age'>; // フィールドを除外
type KeysOfUser = keyof User; // 'id'|'name'|'age'既存の型を再利用して変形することでDRYに型定義が書ける。Pick/OmitはAPI境界でよく使われる。