メインコンテンツまでスキップ

型の再利用

TypeScriptでは型から別の型を導き出す機能があります。既存の型を再度利用して、新たな型を生み出すことを本書では「型の再利用」と呼ぶことにします。

型の再利用のメタファー

多くのプログラミング言語では、変数を処理して別の変数を導き出せます。たとえば、あるオブジェクトのキーの配列が欲しいとき、キーの配列を別途宣言してもよいです。しかし、オブジェクトからキーを導きだしたほうが変更に強いコードになります。

ts
const obj = { a: 1, b: 2, c: 3 };
const keys1 = ["a", "b", "c"];
const keys2 = Object.keys(obj); // keys1より保守性が高い
ts
const obj = { a: 1, b: 2, c: 3 };
const keys1 = ["a", "b", "c"];
const keys2 = Object.keys(obj); // keys1より保守性が高い

上は変数の再利用の例です。TypeScriptには変数の再利用の型バージョンがあります。それが型の再利用です。たとえば、あるオブジェクトの型からキーの型を導き出すことができます。

ts
type Obj = { a: string; b: string; c: string };
type Keys = keyof Obj;
//=> "a" | "b" | "c"
ts
type Obj = { a: string; b: string; c: string };
type Keys = keyof Obj;
//=> "a" | "b" | "c"

型の再利用とは、変数の再利用のメタファーなのです。