結論
オブジェクトをマージする際や上書きする際の型定義はPartial<T>
を使うと便利です。
どんな時に使えるの?
たとえば、TSの公式ドキュメント(partialtype)が提供されているケースでは、updateTodo
関数が、Todo
型であるtodo1
のオブジェクトに、更新対象のtodo2
のプロパティで上書きする場合が挙げられています。
interface Todo {
title: string;
description: string;
}
function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {
return { ...todo, ...fieldsToUpdate };
}
const todo1 = {
title: "organize desk",
description: "clear clutter",
};
const todo2 = updateTodo(todo1, {
description: "throw out trash",
});
/** output: {
* title: "organize desk",
* description: "throw out trash",
* }
**/
さいごに
実際の開発現場では、JS
のスプレッド構文を利用したマージ処理のときに結構使えるケースが多い、という所感です。
Partial<T>
の他にも、TS
がいろんなユーティリティタイプを提供しています。
TSのutility-types ← 興味があったらぜひのぞいてみてくださいね~